2008-11-25 153 views
85

我無法看到要檢索我在控制器中的html.ActionLink中發送的ID,以下是我正在嘗試執行的操作ASP.NET MVC將ActionLink中的ID傳遞給控制器​​

<li> 
    <%= Html.ActionLink("Modify Villa", "Modify", "Villa", new { @id = "1" })%></li> 


    public ActionResult Modify(string ID) 
    { 

     ViewData["Title"] =ID; 
     return View(); 
    } 

這就是我遵循的教程所推薦的,但它不起作用,它也將?length = 5放在URL的末尾!

在此先感謝!

編輯:這裏是我使用的路線,它的默認

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

似乎有人downvoted以下兩個建議,但沒有公佈他們的解決方案!

回答

186

看起來不像你使用ActionLink的正確重載。試試這個: -

<%=Html.ActionLink("Modify Villa", "Modify", new {id = "1"})%> 

這裏假設您的視圖位於/ Views/Villa文件夾下。如果沒有,那麼我懷疑你需要: -

<%=Html.ActionLink("Modify Villa", "Modify", "Villa", new {id = "1"}, null)%> 
+4

良好的通話 - 問題是,該函數的第一個重載了「HtmlAttributes」作爲第四個參數。因此,添加「,null」會強制編譯器使用內聯對象作爲路由參數。 – 2008-11-25 11:21:26

10

不要把@在ID前?Lenght

new { id = "1" } 

框架「翻譯」就當是在參數/路由不匹配

20

在MVC 4您可以從一個視圖傳遞ID或主鍵另一個控制器通過

1

鏈路ID將與@標誌工作前面也是,但我們必須在此之後添加一個參數。這是null

樣子:

@Html.ActionLink("Label Name", "Name_Of_Page_To_Redirect", "Controller", new {@id="Id_Value"}, null) 
3

在MVC 5頗爲相似

@Html.ActionLink("LinkText", "ActionName", new { id = "id" }) 
相關問題