2012-06-09 8 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:

Try:

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

благодарит его работу .. –

+0

@vijayyaragall - отметьте его как ответ. –

Смежные вопросы