【问题标题】:Action parameters showing up in querystring instead of URL操作参数显示在查询字符串而不是 URL 中
【发布时间】:2011-06-15 02:25:14
【问题描述】:

我正在这样做:

@Url.Action("Details", "MyController", new { id = this.Model.ID })

URL 如下所示:/MyController/Details?id=1

如何让它像这样格式化 URL:/MyController/Details/1

路线如下所示:

routes.MapRoute("Default", "{Controller}/{Action}", new { Controller = "Home", Action = "Index" });
routes.MapRoute("Default-ID", "{Controller}/{Action}/{ID}");

【问题讨论】:

    标签: model-view-controller asp.net-mvc-3 .net-4.0 routes


    【解决方案1】:

    路由的顺序很重要 - 两个 url 都是有效的,在这种情况下,系统在查找与该操作匹配的 url 时首先获取查询字符串。

    还有一种可能是您对 {ID} 有区分大小写的问题 - 对此不确定,但通常最好始终使用大小写。

    【讨论】:

    • 谢谢 - 订购是一个疏忽,哎呀!它现在以正确的顺序工作,但情况显然无关紧要。我仍然会在路线中使用与其他地方相同的案例。谢谢。
    • 谢谢汤姆,我遇到了同样的问题,但找不到原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 2016-07-07
    相关资源
    最近更新 更多