我在视图中有一个名为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" />
}
提交后,它会转到我的控制器中的AddRole操作,我将此角色添加到数据库并返回到同一视图。 AddRole的代码是,
[HttpPost]
public ActionResult AddRole(Role role)
{
//Code for adding role into database
using (UserDbContext db = new UserDbContext())
ViewBag.Message= "Role successfully added.";
return View("AddRole");
}
向数据库添加值后,它仍然显示文本框中已有的类型值。 我希望它在添加到数据库后不得显示这些值。
我认为是这样,将角色值发送回视图,这就是为什么它在表单中显示这些值。所以我试着在操作中使该值为null。但是不行。 提前谢谢。
答案 0 :(得分:1)
您可以执行ModelState.Clear()
或执行GET
请求回到您的AddRole页面,即return RedirectToAction("AddRole")
。但是,后者不会保持你的ViewBag.Message;
答案 1 :(得分:0)
尝试使用
Role newRole=new Role();
ModelState.Clear(); // the fix
return View("AddRole",newRole);
如果有效,请更新我吗?