2012-06-09 29 views
7

Mi enlace de acción en .cshtml es así:@ Html.ActionLink en ASP.NET MVC 3

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

y mi método en el controlador es así:

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

pero sólo valor de item.ID se está aprobada, otros dos valores item.Post_ID y item.Reply_ID no están recibiendo pasaron .. Puede alguien por favor me guía .. gracias ..

+1

¿Cómo se ve la URL que se genera? –

Respuesta

1

Trate

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

El problema era que el objeto anónimo que ha pasado no contenía los nombres de variables, por lo que no se correlaciona con los parámetros de acción.

+0

He intentado esto también, no funcionó .. –

5

El problema es que cuando se agrega en valores de los parámetros de un enlace de acción debe también añadir atributos HTML, utilice la siguiente:

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

Añadiendo el valor Null de atributos HTML permitirá a los parámetros correctos para ser enviados

+0

gracias a su funcionamiento .. –

7

Parece que está utilizando la sobrecarga equivocado para @Html.ActionLink:

Probar:

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

gracias a su funcionamiento .. –

+0

@vijayyaragall - por favor, márquelo como la respuesta. –

Cuestiones relacionadas