通过单击MVC5中的提交按钮清除所有字段

时间:2016-07-31 16:58:28

标签: c# asp.net-mvc-5

您好我想在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();
    }

提前谢谢..

1 个答案:

答案 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);

}