Asp.net 多个操作、相同的视图和验证错误

Asp.net 多个操作、相同的视图和验证错误,asp.net,views,asp.net-mvc-3,models,Asp.net,Views,Asp.net Mvc 3,Models,假设ModelState错误发生在名为AddComment的操作中。AddComment没有自己的视图,所以我们必须返回ViewBlog,而不是返回视图。我们无法使用RedirectToActionBlog,因为我们丢失了ModelState错误。问题是如果博客视图绑定到博客模型怎么办?!?假设我们有一个索引操作,其任务是检索博客的数据并返回ViewBlog,BlogModel。我们必须将检索BlogModel的Index的内容复制到AddComment操作中。否则,当解析博客视图时,从AddC

假设ModelState错误发生在名为AddComment的操作中。AddComment没有自己的视图,所以我们必须返回ViewBlog,而不是返回视图。我们无法使用RedirectToActionBlog,因为我们丢失了ModelState错误。问题是如果博客视图绑定到博客模型怎么办?!?假设我们有一个索引操作,其任务是检索博客的数据并返回ViewBlog,BlogModel。我们必须将检索BlogModel的Index的内容复制到AddComment操作中。否则,当解析博客视图时,从AddComment返回ViewBlog将给我们一个空异常。这是在使用相同视图的操作之间维护ModelState错误的唯一方法吗?我刚开始学习MVC,我还在学习如何正确地布局我的代码,所以请告诉我

    [HttpGet]
    public ActionResult Index()
    {
        BlogEntry RecentBlogEntry;

        //get the most recent blog entry
        RecentBlogEntry = m_BlogEntryDataService.GetRecentBlogEntry();

        return View(RecentBlogEntry);
    }

    [HttpPost]
    public ActionResult AddComment(BlogComment NewComment)
    {
        if (ModelState.IsValid)
            m_CommentDataService.AddComment(NewComment);

        //get the most recent blog entry - AGAIN
        return View("Index", m_BlogEntryDataService.GetRecentBlogEntry());
    }

你的代码是正确的。如果出现验证错误,您应该再次获取最新的博客条目,以便正确地重新显示视图。

但是,如果我有一个有更多内容的博客页面,我最终会有许多操作重复索引操作代码。如果我必须在索引中进行更改,我将被迫在所有其他操作中更改代码。然后,另一种选择是返回到viewstate的日子,在那里,我的模型将从一个请求持续到另一个请求。我想我只需要确保我的控制器中没有我的逻辑!