Asp.net mvc 4 在数据库中插入数据后返回mvc中的同一视图后使模型为空

Asp.net mvc 4 在数据库中插入数据后返回mvc中的同一视图后使模型为空,asp.net-mvc-4,Asp.net Mvc 4,我在视图中有一个名为Role的表单,其中包含用于填充Role值的表单。 为此,我在视图中使用了模型 @using MyProject.Models @model Role <h2>AddRole</h2> @using (Html.BeginForm()){ @Html.LabelFor(m=>m.RoleName) @Html.TextBoxFor(m=>m.RoleName)<br /> <input type="submit" va

我在视图中有一个名为Role的表单,其中包含用于填充Role值的表单。 为此,我在视图中使用了模型

@using MyProject.Models
@model Role
<h2>AddRole</h2>
@using (Html.BeginForm()){ 
@Html.LabelFor(m=>m.RoleName)
@Html.TextBoxFor(m=>m.RoleName)<br />

<input type="submit" value="Add Role" />
}
在向数据库添加值之后,它仍然在文本框中显示已经输入的值。 我希望它在添加到数据库后不能显示这些值

我认为是的,将角色值发送回视图,这就是为什么它以表单形式显示这些值。所以我尝试在操作中使该值为null。但不起作用。 提前感谢。

尝试使用

Role newRole=new Role();
ModelState.Clear();  // the fix
return View("AddRole",newRole);

如果有效,请更新我?

您可以执行
ModelState.Clear()
或执行
请求返回到AddRole页面,即
返回重定向到操作(“AddRole”)
。但是,后者不会保留您的ViewBag

什么问题,输出是否相同?正如@david所说的,尝试使用ModelState.Clear()是的,它通过使用ModelState.Clear()以及返回RedirectToAction(“AddRole”)来工作,但它没有将消息保留在ViewBag中,因为我使用了tempData
Role newRole=new Role();
ModelState.Clear();  // the fix
return View("AddRole",newRole);