MVC 4控制器中的id值为空



我正在开发一个MVC 4互联网应用程序,在创建一个对象后遇到了问题。

以下是发生错误的代码:

[Authorize]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(int id, Comment comment)
{
if (ModelState.IsValid)
{
Book book = db.books.Where(b => b.id == id).First();
comment.username = us.GetCurrentlyLoggedInUserName();
book.comments.Add(comment);
db.SaveChanges();
return RedirectToAction("Index", id);
}
return View(comment);
}

以下是索引ActionResult:

public ActionResult Index(int id)
{
var commentsBookViewModel = new CommentsViewModel();
commentsBookViewModel.bookId = id;
commentsBookViewModel.isUserLoggedIn = us.IsUserLoggedIn();
commentsBookViewModel.loggedInUserName = us.GetCurrentlyLoggedInUserName();
commentsBookViewModel.comments = db.books.Where(b => b.id == id).FirstOrDefault().comments.ToList();
return View(commentsBookViewModel);
}

错误如下:

参数字典包含的参数"id"的空条目方法的类型"System.Int32"不可为null中的"System.Web.Mvc.ActionResult Index(Int32)"BookApplication.Controllers.CommentController"。可选参数必须是引用类型、可为null的类型,或者声明为可选参数。参数名称:参数

如果我在这条线上放置一个断点:

return RedirectToAction("Index", id);

变量id有一个值,并且不是null,但是错误仍然发生。

能帮我一下吗?

提前感谢

我会尝试用这样的东西传递它。

return RedirectToAction("索引",new{id=id});

相关内容

  • 没有找到相关文章

最新更新