我正在开发一个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});