Url.Action /路由行为不正确? Asp.net mvc 4

时间:2014-06-10 09:38:51

标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-routing

在asp.net mvc中找到了感兴趣的路由。

让我们用asp.net mvc 4项目创建清晰的空解决方案。

路线:

//more detail route
routes.MapRoute(
            name: "{lang}/category/{category}",
            url: "{lang}/category/{category}",                
            defaults: new { controller = "Home", action = "Index" }
        );
        //more general route
        routes.MapRoute(
            name: "{lang}",
            url: "{lang}",

            defaults: new { controller = "Home", action = "Index"  }
        );
HomeController中的

[HttpGet]
public ActionResult Index(string category = null)
{


   return View("~/Views/Home/index.cshtml");
}

任何人都可以说为什么它返回“/ en”所有Url.Action调用除了“/ en / category / 1”之外的网址? 我的意思是,如果我去,例如/ samplePage / blabla - 它按预期工作(在html:/ en中生成url),但是当我转到“/ en / category / 1”时 - 生成的url在html中更改为“烯/类别/ 1”!

  Url.Action("Index","Home", new {lang="en"}); //different behaviour for "/en" and  "/en/category/1" urls

来自网址的当前路由数据是否会影响网址生成功能?

更新 这里讨论了同样的问题:UrlHelper.Action includes undesired additional parameters。由@AndyNichols提供

0 个答案:

没有答案