相关疑难解决方法(0)

ASP.NET MVC Url.Action和路由名称值

我正在使用asp.net mvc 2并根据路线创建本地化.

  1. 我的路线看起来像: {culture}/{controller}/{action}
  2. 我去我家的控制器: en/Home/Index
  3. 我的家庭控制器视图有一个到其他控制器的链接:

    <a href='<%= Url.Action("Prods","Products") %>' >Products</a>
    <a href='<%= Url.Action("Index","About") %>' >About</a>
    
    Run Code Online (Sandbox Code Playgroud)

第一个链接生成代码:/en/Products/Prods但第二个生成:/Home/Index

当我在参数动作中传递值时,我无法理解为什么Url.Action跳过{culture}route参数Index?我究竟做错了什么?

路线配置:

routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

routes.MapRoute("Login", // Route name
                "{controller}/Index", // URL with parameters
                new { controller = "Login", action = "Index" } // Parameter defaults
                ).RouteHandler = new SingleCultureMvcRouteHandler();

routes.MapRoute("Default", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc asp.net-mvc-routing asp.net-mvc-2

15
推荐指数
1
解决办法
3万
查看次数