簡體   English   中英

在區域中使用兩個參數的MVC5路由

[英]MVC5 Routing with two parameters in an Area

我有一個稱為新聞的區域,在該區域內有一個后控制器。 后控制器具有以下操作:

public ActionResult Index(int id, string name)
{
...
}

我在NewsAreaRegistration中有一條路線

    context.MapRoute(
        "News_post",
        "News/{controller}/{id}/{name}",
        new { action = "Index", controller = "Post",name = UrlParameter.Optional }, new { id = @"\d+"}
    );      

我也嘗試過不使用name對象屬性,使用和不使用id @“ \\ d +.。在另一個站點上,我使用完全相同的設置進行了嘗試,只是對為什么它無法按預期工作感到困惑。

現在首先,該操作將解決:

http://example.com/News/Post/Index/3 

當我想解決

http://example.com/News/Post/3 

然后,我也希望最后使用此字符串參數,因此它應該解析為

http://example.com/News/Post/3/test-post

但改為解決

http://example.com/News/Post/Index/3?test-post

我對這個路由東西感到完全的噩夢。 我試圖弄亂“路由”屬性,但在區域方面沒有運氣...有什么主意嗎?

因此,我通過使“路線”看起來像這樣來解決了部分問題:

  context.MapRoute( "News", "News/Post/{id}/{name}", new { action = "Index", controller = "Post" }, new { id = @"\\d+" } ); 

所以我刪除了name參數的UrlParamter.Optional。 我需要真正弄清楚其中一些路線的工作方式。 有時它是如此簡單,但是其他人卻無法用它來做最簡單的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM