【问题标题】:Configuring asp.net mvc routing配置asp.net mvc路由
【发布时间】:2014-04-17 08:46:35
【问题描述】:

我正在使用此代码在RouteConfig.cs 中进行路由:

routes.MapRoute("Default", "", new { controller = "Home", action = "Index", id = UrlParameter.Optional });

现在我想更改它,如果网址是"<domain>/Saman/Profile",我应该为username"Saman" 的用户加载个人资料页面。

【问题讨论】:

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


    【解决方案1】:

    实际上,您必须在默认路由之前提供配置文件路由。这里的 url 将查找配置文件,一旦找到它将使用第一个路由。我希望这会起作用。

    routes.MapRoute(
                name: "Profile",
                url: "FilesView/{name}",
                defaults: new { controller = "FilesView", action = "Profile", name = UrlParameter.Optional }
            );
     routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "FilesView", action = "Index", id = UrlParameter.Optional }
            );
    

    【讨论】:

    • 在您的解决方案中 url 是这样的: /profile/user 但是我想当 url 是 /saman/profile 时,搜索“saman”用户名,并获取配置文件属性。
    • 您可以尝试添加 {name}/Profile.here 它会期望名称/配置文件。
    • 我不认为name = UrlParameter.Optional 在这种情况下是好的。这里真的应该是可选的吗?
    • 否,但是如果您在同一个控制器中还有一个操作,那么它将返回配置文件的所有用户,那么我们可以使用相同的路由而不添加新路由,但在这种情况下,路由应该像配置文件/{name} 这里名称是可选的。
    • 您确定此解决方案可行吗?我正在使用此代码,但出现 404 错误...
    猜你喜欢
    • 2017-07-12
    • 2021-04-23
    • 2015-12-09
    • 2014-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多