在页面加载时显示的MVC-5 Razor验证错误

时间:2017-05-22 06:06:56

标签: asp.net-mvc validation razor asp.net-mvc-5

当我进入插入页面时,我有一个插入页面,显示了所有验证字段,

[Required(ErrorMessage ="Please Enter Name")]
        public string ccname { get; set; }

这是我的类,我在其中声明了带有必需验证消息的字符串ccname

  

输入姓名

并且它应该在用户点击插入而不在ccname

中输入数据时显示

但是在页面加载

上显示了验证消息
@Html.TextBoxFor(model => model.ccname, new { @class = "textboxstyle" })
@Html.ValidationMessageFor(model => model.ccname)

我尝试了一些东西,但没有任何作用,

这是一个例子

在我的控制器中,我添加了ModelState.clear();

public ActionResult insert()
{
    ModelState.Clear();
    return View();
}

在我看来,我改变了

的代码
@Html.TextBoxFor(model => model.ccname, new { @class = "textboxstyle" })
@Html.ValidationMessageFor(model => model.ccname)

@Html.TextBoxFor(model => model.ccname, new { @class = "textboxstyle" })
@Html.ValidationMessageFor(model => model.ccname,"",new {@style= ".validation-summary-valid { display:none; }" })

但这些都不起作用

我现在该怎么办?

1 个答案:

答案 0 :(得分:1)

示例:

<强>型号:

public class MyModel
{
  [Required(ErrorMessage ="Please Enter Name")]
  public string ccname { get; set; }
}

<强>控制器:

public class HomeController:Controller
{
[HttpGet]
 ActionResult Insert()
 {
     var model =new MyModel();
      return View(model); 
 }

 [HttpPost]
 [ValidateAntiForgeryToken]
 ActionResult Insert(MyModel model)
 {
     if(ModelState.IsValid)
     {
      //Do something
       return View(); 
     }   
      return View(model); 
 }
}

查看

<强> Insert.cshtml

@model MyModel

@using (Html.BeginForm("Insert", "Home", FormMethod.Post))
{
 @Html.AntiForgeryToken()
 @Html.ValidationSummary(true, "", new { @class = "text-danger" })
 @Html.TextBoxFor(model => model.ccname, new { @class = "textboxstyle" })
 @Html.ValidationMessageFor(model => model.ccname)
  <input type="submit" value="Insert" class="btn btn-primary" />
}
@Scripts.Render("~/bundles/jqueryval")