Asp.net

如何將 /News/5 的路由映射到我的新聞控制器

  • December 31, 2012

我正在嘗試確定如何將 /News/5 的路由映射到我的新聞控制器。

這是我的新聞控制器:

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
       );

我嘗試轉到 /News/5 但收到資源未找到錯誤,但是當轉到 /News/Index/5 時它可以工作嗎?

我試過了,{controller}/{id}但這只是產生了同樣的問題。

謝謝!

您的{controller}/{id}路線是正確的,但您很可能在另一條路線之後註冊了它。在路由列表中,它自上而下搜尋,找到的第一個匹配項獲勝。

為了幫助引導路由,我建議為此創建路由約束,以確保 #1 控制器存在並且 #2{id}是一個數字。

這篇文章

主要是:

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

引用自:https://stackoverflow.com/questions/9332026