即使模型值为空,TextBoxFor Helper也会保留以前的值

syd*_*yos 11 asp.net-mvc-3

我有一个MVC表单用于添加一个简单的实体.我正在使用TextBoxFor(model => model.FieldName)来创建输入字段.我有一个Save按钮和Save and New按钮."保存"和"新建"按钮应该回发到"保存"操作,然后使用空模型返回当前视图,以使用户能够添加另一个实体.但是,发生的情况是,即使模型确实为空,也会使用为前一个实体输入的值生成输入字段.希望这是有道理的.

我知道我可以做一个重定向,但这似乎是一个丑陋的解决方法,所以如果有人之前遇到过这种情况,我真的很感激一些意见.

谢谢.

ata*_*ini 13

这里的问题是您ViewData.ModelState仍然使用原始帖子中的值填充,即使该Model值为null并且您没有明确地将任何值传递到视图中.

我实际上不认为重定向到原始操作是一个丑陋的解决方案,但如果你不想这样做,那么清除它ViewData应该适合你:

[HttpPost]
public ActionResult Save(TestModel model)
{            
    ViewData = null;
    return View();
}
Run Code Online (Sandbox Code Playgroud)


Ric*_*rdN 5

我建议使用

ModelState.Clear();
Run Code Online (Sandbox Code Playgroud)

代替

ViewData = null;
Run Code Online (Sandbox Code Playgroud)

因为我发现你要做的事情要清楚得多.虽然两者都能完成你想要做的事情.