Asp.net mvc 4 ASP.Net MVC4中未绑定文本框的验证

Asp.net mvc 4 ASP.Net MVC4中未绑定文本框的验证,asp.net-mvc-4,validation,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 Wor

我有一个视图的以下代码,其中我提交了来自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>
}

在帮助器的html属性参数中设置所需的属性

@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>
@Html.TextBox(“用户名”,空,新{@data\u val\u required=“我是必需的”,@data\u val=“true”})

什么是未绑定的文本框?这些不是模型中的属性吗?它不绑定到模型中的任何属性。谢谢你的回答。对于上述情况,我如何显示自定义消息而不是标准消息?我已将此添加到我的回答中。我使用另一种格式自定义验证消息,如我原始帖子的更新1所示。你觉得这样行吗?它似乎在IE11中起作用。
@Html.TextBox("username", null, new { @data_val_required="I'm required", @data_val="true" })
<span data-valmsg-replace="true" data-valmsg-for="username"></span>