我正在开发一个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);
}
这是Index 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' 'System.Web.Mvc.ActionResult Index(Int32)'中 'BookApplication.Controllers.CommentController'。可选参数 必须是引用类型,可空类型,或声明为 可选参数。参数名称:参数
如果我在该行放置一个断点:
return RedirectToAction("Index", id);
变量id
有一个值,并且不为空,但错误仍然存在。
我可以请一点帮忙吗?
提前致谢
答案 0 :(得分:0)
我会尝试用这样的东西传递它。
返回RedirectToAction(“Index”,new {id = id});