Asp.net mvc 2 在asp MVC 2中使用强类型视图时,如何保持视图状态?

Asp.net mvc 2 在asp MVC 2中使用强类型视图时,如何保持视图状态?,asp.net-mvc-2,Asp.net Mvc 2,我有一个从强类型视图返回的ActionResult,在该视图中,我手动验证了一些条件,传入了一条错误消息,但希望保留用户的响应 因为我的视图是强类型的,所以我这样称呼它: return View("PrincipalInvestigatorForm", new SmartFormViewModel(sections, questions)); [HttpPost] public ActionResult Edit(MyModel model) { if (ViewData.ModelS

我有一个从强类型视图返回的ActionResult,在该视图中,我手动验证了一些条件,传入了一条错误消息,但希望保留用户的响应

因为我的视图是强类型的,所以我这样称呼它:

return View("PrincipalInvestigatorForm", new SmartFormViewModel(sections, questions));
[HttpPost]
public ActionResult Edit(MyModel model)
{
    if (ViewData.ModelState.IsValid)
    {
        // Whatever...
    }
    else
    {
        return View("Editmodel", model)
    }
}

但我的问题是,虽然显示了错误消息,但删除了所有用户数据。如何在MVC中保留“视图状态”?有什么简单的方法吗?

你的行动是什么样子的?我用的是这样的东西:

return View("PrincipalInvestigatorForm", new SmartFormViewModel(sections, questions));
[HttpPost]
public ActionResult Edit(MyModel model)
{
    if (ViewData.ModelState.IsValid)
    {
        // Whatever...
    }
    else
    {
        return View("Editmodel", model)
    }
}

最好是根据表单信息重新填充SmartFormViewModel模型

谢谢,这会起作用,但有一个问题,我使用的是ViewModel,但是当我使用ViewModel作为参数的ActionResult时,我收到一个错误,说我需要一个无参数的方法,即使我的视图是强类型的(对于我的ViewModel)。@Mark Kadlec:你的操作上面有HttpPost属性吗,您是否有两个操作用于编辑,一个用于查看,一个用于发布?只有一个post方法,它确实具有该属性。我调用:[AcceptVerbs(HttpVerbs.Post)]public ActionResult Next(列出答案){…},但从未调用过它。你不能让列表返回吗?谢谢Bryan,我想这是一个选择,没什么大不了的,我想可能会有一个更快的选择(银弹),但当我考虑它时,我必须在内存中保存整个HTML字符串,Formscollection更多的是一个结果数组。至少解析结果会很容易,好处是我现在可以完全控制要保存的内容。谢谢