В этой строке:
@Html.ActionLink("Reply", "BlogReplyCommentAdd", "Blog",
new { blogPostId = blogPostId, replyblogPostmodel = Model,
captchaValid = Model.AddNewComment.DisplayCaptcha })
Я получаю следующую ошибку времени выполнения на blogPostId:
Словарь параметров содержит пустую запись для параметра blogPostId типа System.Int32, не допускающего значения NULL, для метода System.Web.Mvc.ActionResult BlogReplyCommentAdd (Int32, Nop.Web.Models.Blogs.BlogPostModel, Boolean) в 'Nop.Web.Controllers.BlogController'. Необязательный параметр должен быть ссылочным типом, типом, допускающим значение NULL, или быть объявленным как необязательный параметр. Название параметра: параметры
Я уже присвоил этому значение сверху, например
@{
var blogPostId = Model.Id;
}
Мой контроллер:
public ActionResult BlogReplyCommentAdd(int blogPostId, BlogPostModel model, bool captchaValid)
{}
Я делаю что-то неправильно? Приведите, пожалуйста, пример.
источник
controllerName
иactionName
[HttpPost]
в действии, потому что ссылка отправляет запрос GET.[HttpPost]
означает, что действие вашего контроллера доступно только с помощью запроса POST.Мне нужно передать два параметра, например:
Сюда:
сгенерирует этот URL
Я использовал обходной метод, объединив параметр два с параметром один, и получил то, что хотел:
И я получаю:
источник
Вы можете передавать значения, используя приведенное ниже.
Контроллер:
И URL-адрес выглядит как
источник
Проблема должна быть в значении Model.Id, которое имеет значение NULL. Вы можете подтвердить, присвоив значение, например
Если ошибка исчезла, вам необходимо убедиться, что ваш идентификатор модели имеет значение, прежде чем передавать его в представление
источник