我有一个视图的代码,我从3个不同的文本框中提交一些数据。这只是我创建的练习样本。我在ASP.Net中使用Razor语法和MVC4。
我的问题:如何验证文本框以便始终需要它们?
@{
ViewBag.Title = "HelloWorld";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>HelloWorld</h2>
<div>This is a sample Hello World page</div>
<h1>@ViewBag.Title</h1>
<h2>@ViewBag.Message</h2>
@using (Html.BeginForm("HandleSubmit", "Home"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary()
<fieldset>
<legend>Registration Form</legend>
<ol>
<li>
@Html.Label("username", "UserName")
@Html.TextBox("username")
</li>
<li>
@Html.Label("pwd", "Password")
@Html.Password("pwd")
</li>
<li>
@Html.Label("cpwd", "Confirm Password")
@Html.Password("cpwd")
</li>
</ol>
<input type="submit" value="TestPost" />
<div style="color:red;font-weight:bold">@ViewBag.Feedback</div>
</fieldset>
}
更新1:另一种验证文本框并显示自定义无效邮件的方法如下所示。
@Html.TextBox("username", null, new { @required = "required",
@oninvalid = "this.setCustomValidity('This data is a must')" })
答案 0 :(得分:1)
在帮助程序的html attributes参数中设置required属性
@Html.TextBox("username", null, new { @required="required", @oninvalid="setCustomValidity('I\'m required')" })
要自定义此效果并获得与MVC模板相同的效果,您需要jquery.validate.js
和jquery.validate.unobtrusive.js
@Html.TextBox("username", null, new { @data_val_required="I'm required", @data_val="true" })
<span data-valmsg-replace="true" data-valmsg-for="username"></span>