Nesta linha:
@Html.ActionLink("Reply", "BlogReplyCommentAdd", "Blog",
new { blogPostId = blogPostId, replyblogPostmodel = Model,
captchaValid = Model.AddNewComment.DisplayCaptcha })
Recebo o seguinte erro de tempo de execução em blogPostId:
O dicionário de parâmetros contém uma entrada nula para o parâmetro 'blogPostId' do tipo não anulável 'System.Int32' para o método 'System.Web.Mvc.ActionResult BlogReplyCommentAdd (Int32, Nop.Web.Models.Blogs.BlogPostModel, Boolean)' em 'Nop.Web.Controllers.BlogController'. Um parâmetro opcional deve ser um tipo de referência, um tipo anulável ou ser declarado como um parâmetro opcional. Nome do parâmetro: parâmetros
Já atribuí um valor para isso no topo, como
@{
var blogPostId = Model.Id;
}
Meu controlador:
public ActionResult BlogReplyCommentAdd(int blogPostId, BlogPostModel model, bool captchaValid)
{}
Estou fazendo algo errado? Por favor me dê um exemplo.
fonte
controllerName
eactionName
[HttpPost]
na ação porque o link está enviando uma solicitação GET.[HttpPost]
significa que sua ação do controlador está acessível apenas com uma solicitação POST.Tenho que passar dois parâmetros como:
Deste jeito:
irá gerar este url
Usei um método alternativo mesclando o parâmetro dois no parâmetro um e obtive o que queria:
E eu consigo:
fonte
Você pode passar valores usando o abaixo.
Controlador:
E o URL parece
fonte
O problema deve ser com o valor Model.Id que é nulo. Você pode confirmar atribuindo um valor, por exemplo
Se o erro desaparecer, então você precisa se certificar de que o Id do modelo tem um valor antes de passá-lo para a visualização
fonte