您好我想在MVC5中单击提交按钮后清除所有字段。我在控制器中使用了ModelState.clear()。但这只清楚了文本框的价值。它没有清除单选按钮和下拉值。所以任何人都告诉我这个问题的解决方案。
我的ViewModel(CustomerViewModel)
public System.Guid CustomerID { get; set; }
[Required(ErrorMessage = " Enter The Customer Name.")]
[StringLength(100, ErrorMessage = "Name Only Accepted 100 Characters.")]
public string CustomerName { get; set; }
public System.Guid CustomerTypeID { get; set; }
[Required(ErrorMessage = "CustomerType Required.")]
public string CustomerType { get; set;
public System.Guid AddressID { get; set; }
public string Address { get; set; }
public string Street { get; set; }
public string Location { get; set; }
public string Place { get; set; }
public Nullable<System.Guid> AreaID { get; set; }
public string Area { get; set; }
public Nullable<System.Guid> CityID{ get; set; }
public string City { get; set; }
public string PinCode { get; set; }
我的观点
@Html.Label("Customer Name", new { @class = "control-label" })
@Html.ValidationMessageFor(model => model.CustomerName)
@Html.TextBoxFor(model => model.CustomerName, new { @class = "form-control required", type = "text" })
@Html.Label("Customer Type", new { @class = "control-label" })
@Html.DropDownList("CustomerTypeID", null, "Select", new { @class = "form-control required" })
@Html.LabelFor(model => model.Street, new { @class = "control-label" })
@Html.TextBoxFor(model => model.Street, new { @class = "form-control", type = "text required" })
@Html.ValidationMessageFor(model => model.Street)
@Html.LabelFor(model => model.Location, new { @class = "control-label" })
@Html.TextBoxFor(model => model.Location, new { @class = "form-control", type = "text " })
@Html.ValidationMessageFor(model => model.Location)
@Html.LabelFor(model => model.Place, new { @class = "control-label" })
@Html.TextBoxFor(model => model.Place, new { @class = "form-control", type = "text" })
@Html.ValidationMessageFor(model => model.Place)
@Html.LabelFor(model => model.Area, new { @class = "control-label" })
@Html.DropDownList("AreaID", null, "Select", new { @class = "form-control required" })
@Html.LabelFor(model => model.PinCode, new { @class = "control-label" })
@Html.TextBoxFor(model => model.PinCode, new { @class = "form-control", type = "text" })
@Html.ValidationMessageFor(model => model.PinCode)
我的控制器
public ActionResult Create()
{
return View();
}
[HttpPost]
Public ActionResult Create(CustomerViewMode CVM)
{
var Customerobj = new Customer
{
CustomerID= Guid.NewGuid(),
CustomerName= CVM.CustomerName;
// remaining saving code
};
db.Customers.Add(Customerobj);
ModelState.Clear();
return View();
}
提前谢谢..
答案 0 :(得分:0)
ModelState.clear()用于清除ModelState字典中的错误或用户设置的任何验证。您可以使用以下代码,其中在POST方法重定向到GET方法并初始化新模型。
[HttpGet]
public ActionResult Index()
{
AdminModel model = new AdminModel();
return View(model);
}
[HttpPost]
public ActionResult Index(AdminModel model,FormCollection c)
{
if (ModelState.IsValid)
{
return RedirectToAction("Index", new { Controller = "Sample1" });
}
return View(model);
}