首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET MVC ModelState 與資料驗證:Html.ValidationMessage 使用方式與 ViewData.ModelState 運作機制

     編輯:關於ASP.NET

前言

ViewData.ModelState 為 ModelStateDictionary 型別,儲存模型繫結與驗證狀態。Html.ValidationMessage 透過檢查 ModelState 中是否存在指定 Key 來顯示錯誤訊息。

Controller 中驗證流程

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Setting(SettingModel model)
{
    if (!ModelState.IsValid)
    {
        // 驗證失敗,ModelState 已包含錯誤資訊
        return View(model);
    }
    // 儲存邏輯...
    return RedirectToAction("Index");
}

View 中顯示驗證訊息

<p>
    <label for="Name">Blog 名稱</label>
    <%= Html.TextBox("Name") %>
    <%= Html.ValidationMessage("Name") %>
</p>
<p>
    <label for="Description">簡介</label>
    <%= Html.TextArea("Description") %>
    <%= Html.ValidationMessage("Description") %>
</p>

Html.ValidationMessage 多載

  • ValidationMessage(string modelName)
  • ValidationMessage(string modelName, string message)
  • ValidationMessage(string modelName, string message, object htmlAttributes)
  • ValidationMessage(string modelName, IDictionary<string, object> htmlAttributes)

ModelState 運作關鍵

  1. 模型繫結器嘗試將表單值繫結至 Action 參數/屬性。
  2. 繫結失敗(型別不符)或資料註解驗證失敗([Required], [StringLength] 等)會自動在 ModelState 加入錯誤。
  3. View 中 Html.ValidationMessage("PropertyName") 檢查 ModelState["PropertyName"].Errors 是否有內容。
  4. 若有錯誤,輸出 <span class="field-validation-error">錯誤訊息</span>。

結語

ModelState 是 MVC 模型驗證的核心容器,配合資料註解屬性與 Html.ValidationMessage,可快速建立完整的伺服器端/用戶端驗證體驗。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved