您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> .NET >> 关于AspNet MVC中关与HtmlActionLink和UrlAction生成路由地址的问题

关于AspNet MVC中关与HtmlActionLink和UrlAction生成路由地址的问题

来源:网络整理     时间:2016/5/21 11:56:48     关键词:net mvc,aspnet

关于网友提出的“关于AspNet MVC中关与HtmlActionLink和UrlAction生成路由地址的问题”问题疑问,本网通过在网上对“关于AspNet MVC中关与HtmlActionLink和UrlAction生成路由地址的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题:关于AspNet MVC中关与HtmlActionLink和UrlAction生成路由地址的问题
描述:

项目中有区域UserManager,其下有网页对应的Action Create,该区域的路由注册是这样:

context.MapRoute(
                "UserManager_default",
                "UserManager/{controller}/{action}/{id}",
                new { action = "Index", controller = "Users", id = UrlParameter.Optional }
            );

Global中的注册代码是:

AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

(1):问题是在Create中使用ActionLink和Url.Action生成默认区域中的某Action(例如Account控制器的Logout),为什么生成的地址是/UserManager/Account/Logout。

(2):如果区域的路由注册是这样:context.MapRoute(
                "UserManager_default",
                "{area}/{controller}/{action}/{id}",
                new { action = "Index", controller = "Users", area="UserManager" id = UrlParameter.Optional }
            );

这么写正确吗,进入项目后地址是http://localhost:XXXX,页面会跑到UserManager/Users/Index,这个是因为Area中的默认路由设置导致的吗?

(3):怎么设置区域(有名称的区域和默认区域)中的路由注册才能在各个区域(有名称的/默认的)中自由定位到其他Action(可能是不同区域)就是获取URL,


解决方案1:

1:因为  "UserManager/{controller}/{action}/{id}",前面加了UserManager。

2:对。因为你没有给地址,所以就执行默认地址。

3:@Url.Action("Index", "Home", new { area = "UserManager" })


以上介绍了“关于AspNet MVC中关与HtmlActionLink和UrlAction生成路由地址的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1216315.html

相关图片

相关文章