c# - 在 ASP.NET MVC 中,如何检查属性是否有错误?

标签 c# asp.net-mvc razor

我在 MVC5 中获得了以下 Razor 代码。

<div class="form-group">
    <label class="control-label">Name</label>
    @Html.TextBoxFor(m => m.Name)
</div>

我现在想确保如果 Name 有错误,表单组 div 会得到一个 has-error 类。如何检查 Name 属性是否有错误?

编辑:根据要求,这是我正在使用的 View 的更完整版本。

@model CaptchaMvc.Models.DefaultBuildInfoModel

<div class="form-group">
    @Html.LabelFor(m => m.InputElementId, "Retype the characters in the image", new { @class = "control-label", @for = "CaptchaInputText" })

    <div class="input-group">
        <span style="padding:0;overflow:hidden;" class="input-group-addon">
            @Html.Hidden(Model.TokenElementId, Model.TokenValue)
            <img style="margin:-12px" id="@Model.ImageElementId" src="@Model.ImageUrl" alt="Captcha Text" />
        </span>
        @Html.TextBox(Model.InputElementId, null, new Dictionary<string, object>
        {
            {"data-val", "true"},
            {"data-val-required", Model.RequiredMessage},
            {"class", "form-control"},
            {"style", "width: 200px;"},
            {"placeholder", "Retype captcha"}
        })
    </div>
</div>

这是与 CaptchaMvc 一起使用的部分 View 。它以下列方式包含在表单中。

@Html.Captcha(6, "_Captcha")

最佳答案

一个非常简单的服务器端检查字段错误的方法是:

@ViewData.ModelState.IsValidField("名称")

返回 true/false,具体取决于 Name 字段是否有与之相关的错误。

编辑:

@{ 
    var nameHasError = Html.ValidationMessageFor(x => x.Name) != null && !string.IsNullOrEmpty(Html.ValidationMessageFor(x => x.Name).ToString());
}

关于c# - 在 ASP.NET MVC 中,如何检查属性是否有错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25321110/

相关文章:

c# - 在 Xamarin.Forms 中自定义进度条外观

c# - 禁止访问 C# WinForms 游戏中的图像

c# - 将List <int?>转换为List <int>

c# - Windows UWP 中对 Xbox One 的 Controller 支持

c# - 使用来自 $http post 服务的模型重定向到 MVC View

forms - 如何在 MVC Razor 表单中显示计算字段?

.net - 如何使用我的数据库使 sql 成员提供程序和 Entity Framework 工作?

.net - System.Web.Caching.Cache 在 ASP.Net MVC 应用程序中有意义吗?

asp.net-mvc-3 - Asp.net MVC 区域中的自定义 Html 助手

Razor CSHTML IF 语句