为了账号安全,请及时绑定邮箱和手机立即绑定

在ASP.NET MVC中路由,在URL中显示用户名

在ASP.NET MVC中路由,在URL中显示用户名

鸿蒙传说 2019-09-26 14:57:54
在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 }
            );

有关更多信息,请参见MVC中的链接路由。


查看完整回答
反对 回复 2019-09-26
?
德玛西亚99

TA贡献1770条经验 获得超3个赞

如果我可以投票两次,我会的。当我意识到这一点时,我总是会忘记它的束缚和愚蠢。我的脑海立刻跳到我很久以前做过的疯狂骇客,每当我回头看看它时,都在思索。

查看完整回答
反对 回复 2019-09-26
  • 3 回答
  • 0 关注
  • 539 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信