【问题标题】:How do I allow /Controller/Id in ASP.NET MVC?如何在 ASP.NET MVC 中允许 /Controller/Id?
【发布时间】:2013-01-20 19:59:14
【问题描述】:

我想访问这个网址

/thread/123

其中123 是线程id

我不知道如何设置我的路线或其他路线。

我想将thread 添加到我的HomeController,但它似乎只有在我转到/home/thread 时才有效。

我如何设置这个项目,以便 url /thread/123 可以工作?

我尝试将 /thread 作为控制器,但它似乎认为 123 是一种操作方法,而另一次尝试是在 Home 而不是 root 中的线程。

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-mvc-3 asp.net-mvc-4


    【解决方案1】:

    您想添加一个为此 URI 指定的路由

    routes.MapRoute(
            "Thread", // Route name
            "thread/{id}", // URL with parameters*
            new { controller = "Thread", action = "Display", id = UrlParameter.Optional }
                    );
    

    非常重要:在“默认”路线上方添加您的新路线!

    【讨论】:

    • 啊,我没有意识到订单很重要。 (我使用了其他软件,将其视为最具体/最不具体)
    • 是的,b/c asp.net mvc 框架选择了第一个可以匹配的路由。
    • 我想要 id = 可选吗?因为 id 是必需的并且 /thread 没有意义。动作显示有什么意义吗?
    • 这是一个好问题:我通常允许可选,这样如果没有给出参数,我不会引发错误,而是使用最新线程或给用户一个线程列表以供选择。这创造了更强大的功能。但这是一个形式/功能/选择问题。
    • 我修好了。仍然有点新,但经过更多思考后很明显。 +1 会在我可以接受时接受
    猜你喜欢
    • 1970-01-01
    • 2016-02-21
    • 2023-03-12
    • 2017-06-29
    • 1970-01-01
    • 2014-02-09
    • 2016-01-31
    • 2013-12-08
    • 2011-10-12
    相关资源
    最近更新 更多