asp.net – 如何映射/ News / 5的路由到我的新闻控制器

前端之家收集整理的这篇文章主要介绍了asp.net – 如何映射/ News / 5的路由到我的新闻控制器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试确定如何将/ News / 5的路由映射到我的新闻控制器.

这是我的NewsController:

public class NewsController : BaseController
{
    //
    // GET: /News

    public ActionResult Index(int id)
    {
        return View();
    }

}

这是我的Global.asax.cs规则:

routes.MapRoute(
            "News",// Route name
            "{controller}/{action}/{id}",// URL with parameters
            new { controller = "News",action = "Index",id = -1 } // Parameter defaults
        );

我尝试去/新闻/ 5,但是我收到一个资源没有找到错误,但是当/新闻/索引/ 5它的工作?

我试过只是{controller} / {id},但这只是产生了同样的问题.

谢谢!

解决方法

您的{controller} / {id}路由是正确的,但是在其他路由之后您可能会注册它.在路线列表中,它搜索自上而下,找到第一个匹配的胜利.

为了帮助引导路由,我建议为此创建路由约束,以确保控制器存在#1,#2 {id}是一个数字.

this article

主要是:

routes.MapRoute( 
        "Index Action",// Route name 
        "{controller}/{id}",// URL with parameters EDIT: forgot starting "
        new { controller = "News",action = "Index" },new {id= @"\d+" }
    );

猜你在找的asp.Net相关文章