2012-06-09 83 views
7

在.cshtml我的動作鏈接是這樣的:@ Html.ActionLink在ASP.NET MVC 3

@Html.ActionLink("Reply", "Post_Reply", new { item.ID, item.Post_ID, item.Reply_ID }) 

和我的控制器方法是這樣的:

[Authorize]  
public ActionResult Post_Reply(int PostId=0, int Id = 0, int ReplyId = 0) 
{ 
    post posts = new post();  
    posts.ID = Id;  
    return View(posts); 
} 

,但只有價值item.ID被獲得通過, 另外兩個值item.Post_ID和item.Reply_ID沒有獲得通過.. 任何人都可以請指導我.. 感謝..

+1

生成的URL是什麼樣的? –

回答

1

儘量

@Html.ActionLink("Reply", "Post_Reply", new { Id = item.ID, PostId = item.Post_ID, ReplyId = item.Reply_ID }) 

你的問題是,你通過匿名對象不包含變量名,所以它不會被映射到你的操作參數。

+0

我也試過這個,它沒有工作.. –

5

的問題是,當你在參數值添加到一個操作環節還必須添加HTML屬性,使用:

@Html.ActionLink("Reply", "Post_Reply", new { Id = item.ID, PostId = item.Post_ID, ReplyId = item.Reply_ID }, null) 

添加Null值HTML屬性會允許發送正確的參數

+0

感謝它的工作.. –

7

看起來你使用了錯誤的重載@Html.ActionLink

嘗試:

@Html.ActionLink("Reply", "Post_Reply", new { Id = item.ID, PostId = item.Post_ID, ReplyId = item.Reply_ID }, null) 
+0

感謝它的工作.. –

+0

@vijayyaragall - 請標記爲答案。 –