在ASP.Net MVC4中验证未绑定的文本框

时间:2014-08-28 03:55:14

标签: asp.net-mvc-4 validation

我有一个视图的代码,我从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')" })

1 个答案:

答案 0 :(得分:1)

在帮助程序的html attributes参数中设置required属性

@Html.TextBox("username", null, new { @required="required", @oninvalid="setCustomValidity('I\'m required')" })

要自定义此效果并获得与MVC模板相同的效果,您需要jquery.validate.jsjquery.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>