场景 我正在尝试使用 asp.net MVC 3 在我的管理面板中构建论坛,其中只有授权用户才能更新新帖子和评论帖子。下面是我的 PostsController 的评论功能
[Authorize]
public ActionResult Comment(int id, string name, string email, string body)
{
Post post = GetPost(id);
Comment comment = new Comment();
User CurrentUser = repository.GetUser(User.Identity.Name);
comment.UserID = CurrentUser.ID;
comment.Post = post;
comment.DateTime = DateTime.Now;
comment.Name = User.Identity.Name;
comment.Email = email;
comment.Body = body;
model.AddToComments(comment);
model.SaveChanges();
return RedirectToAction("Details", new { id = id });
}
问题: 如果有人在未登录的帖子上发表评论,页面将被重定向到登录页面,并且在以授权访问权限登录后,评论表单的帖子值不会被评论操作识别。评论表单的代码是:
<form action="@Href("~/Posts/Comment/" + post.ID)" method ="post">
<input type="text" id="commentNamePrompt" name="name" />
Name (required)
<br />
<input type="text" id="commentEmailPrompt" name="email" />
Email (optional)
<br />
<textarea id="commentBodyInput" name="body" rows="10" cols="60"></textarea>
<input type="submit" id="commentSubmitInput" name="submit" value="Submit!" />
</form>
错误
This property cannot be set to a null value.
尝试过: 我尝试先登录该站点并评论帖子,它工作正常我确信错误是由于在重定向到登录页面和从登录页面后未传递模型帖子值而发生的。如何使用未经授权的用户更新的评论表单帖子值重定向到授权页面。