加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

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

发布时间:2020-12-15 23:03:46 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试确定如何将/ News / 5的路由映射到我的新闻控制器. 这是我的NewsController: public class NewsController : BaseController{ // // GET: /News public ActionResult Index(int id) { return View(); }} 这是我的Global.asax.cs规则: routes.Map
我正在尝试确定如何将/ 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+" }
    );

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读