Asp.net
如何將 /News/5 的路由映射到我的新聞控制器
我正在嘗試確定如何將 /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+" } );