簡體   English   中英

如何使用html.ValidationMessageFor

[英]How to use html.ValidationMessageFor

我試圖讓我的視圖在文本框旁邊給出錯誤消息,如果用戶輸入的內容無效(如字符串中的預期數字)。 相反,我得到一個丑陋的錯誤頁面,說用戶按下提交時驗證失敗。

以下是我的觀點的一部分:

@model MembershipTest.ViewModels.AddDriverViewModel

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@{
Layout = "~/Views/Shared/_Layout.cshtml";
ViewBag.Title = "Add Drivers";
}

@using (Html.BeginForm("AddDriver", "Driver"))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)

<fieldset>
<legend>Customer Information</legend>
 <table>
     <tr>
         <td>
             @Html.Label("First Name:")
             @Html.TextBoxFor(m => m.Driver.F_Name)
             @Html.ValidationMessageFor(m => m.Driver.F_Name)
         </td>
         <td>
             @Html.Label("Gender:")

             @Html.RadioButtonFor(m => m.isMaleChecked, "true") Male
             @Html.RadioButtonFor(m => m.isMaleChecked, "false")Female
         </td>
     </tr>
     <tr>
         <td>
             @Html.Label("Last Name:")
             @Html.TextBoxFor(m => m.Driver.L_Name)
             @Html.ValidationMessageFor(m => m.Driver.L_Name)
         </td>

這是我模型的相關部分:

[Required]
[StringLength(30)]
public string F_Name { get; set; }

[Required]
[StringLength(30)]
public string L_Name { get; set; }

在我的控制器的post方法中,我確保使用

if (ModelState.IsValid)

如果用戶碰巧在第一個名稱文本框中輸入了大約50個字符的內容,我希望在他們選中該文本框時使用Html.ValidationMessageFor()權限顯示錯誤,這樣他們就可以在按下之前看到它提交。 我錯過了一些jquery來實現這個目標嗎? 也許我需要包括一些使用聲明?

這很簡單.....我只是沒有將ErrorMessage字段添加為[Required]裝飾器的一部分。 例如:

[Required(ErrorMessage = "First name is required")]
[StringLength(30, ErrorMessage = "Name can be no larger than 30 characters")]
public string F_Name { get; set; }

[Required(ErrorMessage = "Last name is required")]
[StringLength(30, ErrorMessage = "Name can be no larger than 30 characters")]
public string L_Name { get; set; }

現在,如果用戶要么沒有在名稱字段中輸入任何內容,要么輸入超過30個字符的內容,Post方法就不會被執行,並且用戶會收到一條消息,告訴他們出了什么問題。

暫無
暫無

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

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