使用javascript在MVC3中验证表单

San*_*osh 3 javascript validation asp.net-mvc-3

我只需要一个验证的例子.对于剩下的我会做.假设我输入了类型文本:

 <p>                          
<label for="ClientName">ClientName:</label> <%= Html.TextBoxFor(model => model.Name)%>         
 </p>        
Run Code Online (Sandbox Code Playgroud)

在这里,我想验证所需字段的文本框.我想在JavaScript中使用这个必需的字段验证功能,我想在视图中使用这个脚本.

Tom*_*ler 6

您是否考虑过使用不引人注目的验证?

你说你正在使用MVC3(虽然显然不是Razor视图引擎).

使用这样的代码:<p><label for="ClientName">ClientName:</label> <%= Html.TextBoxFor(model => model.Name)%></p> 可以用<p>@Html.LabelFor(model=>model.Name) @Html.TextBoxFor(model => model.Name) </p>Razor语法编写 .

如果你把它放在web.config中:

<appSettings>
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

然后使用类似这样的数据注释来装饰模型中的属性:

[Display(Name = "Name")]
[Required(ErrorMessage = "Name is required")]
public string Name { get; set; }
Run Code Online (Sandbox Code Playgroud)

然后通过将以下内容添加到您的_Layout.cshtml文件中,您将获得不显眼的验证工作:

<script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)

然后你可以在页面上的某处添加它(你想要显示验证消息的地方): @Html.ValidationMessageFor(model=>model.Name)