En esta línea:
@Html.ActionLink("Reply", "BlogReplyCommentAdd", "Blog",
new { blogPostId = blogPostId, replyblogPostmodel = Model,
captchaValid = Model.AddNewComment.DisplayCaptcha })
Recibo el siguiente error de tiempo de ejecución en blogPostId:
El diccionario de parámetros contiene una entrada nula para el parámetro 'blogPostId' de tipo no anulable 'System.Int32' para el método 'System.Web.Mvc.ActionResult BlogReplyCommentAdd (Int32, Nop.Web.Models.Blogs.BlogPostModel, Boolean)' en 'Nop.Web.Controllers.BlogController'. Un parámetro opcional debe ser un tipo de referencia, un tipo que acepte valores NULL o declararse como un parámetro opcional. Nombre del parámetro: parámetros
Ya he asignado un valor para esto en la parte superior, como
@{
var blogPostId = Model.Id;
}
Mi controlador:
public ActionResult BlogReplyCommentAdd(int blogPostId, BlogPostModel model, bool captchaValid)
{}
¿Estoy haciendo algo mal? Por favor, dame un ejemplo.
fuente
controllerName
yactionName
[HttpPost]
en la acción porque el enlace envía una solicitud GET.[HttpPost]
significa que la acción de su controlador es accesible solo con una solicitud POST.Tengo que pasar dos parámetros como:
De esta manera:
generará esta URL
Usé un método de solución al fusionar el parámetro dos en el parámetro uno y obtengo lo que quería:
Y obtengo:
fuente
Puede pasar valores utilizando lo siguiente.
Controlador:
Y la URL parece
fuente
El problema debe estar en el valor Model.Id que es nulo. Puede confirmar asignando un valor, p. Ej.
Si el error desaparece, debe asegurarse de que la identificación de su modelo tenga un valor antes de pasarlo a la vista
fuente