我有一个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)
我建议使用
ModelState.Clear();
Run Code Online (Sandbox Code Playgroud)
代替
ViewData = null;
Run Code Online (Sandbox Code Playgroud)
因为我发现你要做的事情要清楚得多.虽然两者都能完成你想要做的事情.