簡體   English   中英

在 Html.ValidationMessageFor 中過濾驗證類型

[英]Filter validation-type in Html.ValidationMessageFor

我有一個這樣的模型:

public class SignUpModel
{
    [Required, DisplayName(@"Particulars/Salutation")]
    public short Salutation { get; set; }

    public IEnumerable<SalutationOption> SalutationOptions { get; set; }

    [Required, DisplayName("Particulars/FirstName")]
    public string FirstName { get; set; }

    [Required, Display(Name = "Particulars/LastName")]
    public string LastName { get; set; }

    [Required, DataType(DataType.EmailAddress), Display(Name = "Particulars/Email")]
    public string Email { get; set; }

    [Required, DataType(DataType.EmailAddress), Compare("Email"), Display(Name = "Particulars/EmailConfirmation")]
    public string EmailConfirmation { get; set; }
}

現在在我看來,我想使用@Html.ValidationMessageFor發布驗證錯誤(也是客戶端)。

<div class="section-field">
    <div class="form-group">
        @Html.LabelFor(model => model.Email, new { @class = "control-label required" })
        @Html.EditorFor(model => model.Email, new { htmlAttributes = new { autocomplete = "off" } })
        @Html.ValidationMessageFor(x=>x.Email);
    </div>
</div>
<div class="section-field">
    <div class="form-group">
        @Html.LabelFor(model => model.EmailConfirmation, new { @class = "control-label required" })
        @Html.EditorFor(model => model.EmailConfirmation, new { htmlAttributes = new { autocomplete = "off" } })
        @Html.ValidationMessageFor(x=>x.EmailConfirmation);
    </div>
</div>

但是在Html.ValidationMessageFor中,我只想顯示諸如“無效的電子郵件地址”或“兩封電子郵件必須匹配”之類的內容。

我不想顯示這樣的消息,即字段是必需的,因為所有字段都是必需的 - 而且它們帶有紅色邊框。

有可能嗎? 嘗試實現自定義 HtmlHelper,但這不會過濾任何客戶端。

所以我現在簡單地用 css 修復了它。

我將一個類required-validation添加到無效的Required -validations:

<p class="validation-error required-validation">The field 'FirstName' is required</p>

並添加到我的custom.css

p.validation-error.required-validation {
  display: none;
}

歡迎其他有關如何使用 ASP 處理此問題的想法:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM