W tej linii:
@Html.ActionLink("Reply", "BlogReplyCommentAdd", "Blog",
new { blogPostId = blogPostId, replyblogPostmodel = Model,
captchaValid = Model.AddNewComment.DisplayCaptcha })
W blogPostId pojawia się następujący błąd w czasie wykonywania:
Słownik parametrów zawiera wpis o wartości null dla parametru „blogPostId” typu „System.Int32” nie dopuszczającego wartości null dla metody „System.Web.Mvc.ActionResult BlogReplyCommentAdd (Int32, Nop.Web.Models.Blogs.BlogPostModel, Boolean)” w „Nop.Web.Controllers.BlogController”. Opcjonalny parametr musi być typem referencyjnym, typem dopuszczającym wartość null lub być zadeklarowany jako parametr opcjonalny. Nazwa parametru: parametry
Już przypisałem wartość temu na górze, taką jak
@{
var blogPostId = Model.Id;
}
Mój kontroler:
public ActionResult BlogReplyCommentAdd(int blogPostId, BlogPostModel model, bool captchaValid)
{}
czy robię coś źle? Podaj mi przykład.
źródło
controllerName
iactionName
[HttpPost]
w akcji, ponieważ łącze wysyła żądanie GET.[HttpPost]
oznacza, że akcja kontrolera jest dostępna tylko za pomocą żądania POST.Muszę podać dwa parametry takie jak:
Tą drogą:
wygeneruje ten adres URL
Użyłem metody obejścia, łącząc parametr drugi z parametrem pierwszym i otrzymałem to, co chciałem:
I otrzymuję:
źródło
Możesz przekazać wartości, korzystając z poniższych.
Kontroler:
A URL wygląda jak
źródło
Problem musi dotyczyć wartości Model.Id, która ma wartość null. Możesz potwierdzić, nadając wartość, np
Jeśli błąd zniknie, przed przekazaniem go do widoku należy upewnić się, że identyfikator modelu ma wartość
źródło