在ASP.NET MVC中路由,在URL中显示用户名我正在尝试建立一条路线,以便可以在URL中显示用户名,如下所示:HTTP:// localhost1234 /约翰·这是我的routeconfig: routes.MapRoute(
name: "users", // Route name
url: "{username}", // URL with parameters
defaults: new { controller = "Home", action = "Index", username = "" } // Parameter defaults
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);这是我的HomeController: public ActionResult Index(string username = "Test")
{
return View();
}首先,URL不变。当我username = "Test"在route-config中进行设置时,URL不会更改。其次,我无法导航到其他控制器。如果我将URL更改为http:// localhost123 / Welcome,则不会发生任何事情。它应该将我重定向到新页面。我在这里做错了什么?如果更改路线顺序,则可以导航到其他页面,但用户名未显示在URL中。我已经用谷歌搜索,关于这个问题的所有答案都说我应该使用上述路线。
3 回答
偶然的你
TA贡献1841条经验 获得超3个赞
您需要对网站不同部分的url进行分类,以使url模式匹配机制顺利进行。例如,在您的情况下,输入类别“个人资料”或其他任何内容。现在您的请求网址看起来像http:// localhost1234 / profile / john,而路由将是
routes.MapRoute( name: "users", // Route name url: "Profile/{username}", // URL with parameters defaults: new { controller = "Home", action = "Index" } // Parameter defaults ); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } );
德玛西亚99
TA贡献1770条经验 获得超3个赞
如果我可以投票两次,我会的。当我意识到这一点时,我总是会忘记它的束缚和愚蠢。我的脑海立刻跳到我很久以前做过的疯狂骇客,每当我回头看看它时,都在思索。
- 3 回答
- 0 关注
- 539 浏览
添加回答
举报
0/150
提交
取消