**嗨,我正在使用 .Net 6 和 Visual Studio 2022 社區。
我通過資料注釋進行的模型驗證不適用于 HTMl 標記。**
代碼:
public class Student
{
public int Id { get; set; }
[Display(Name="Student Name")]
[System.ComponentModel.DataAnnotations.Required(ErrorMessage = "Please provide a value for Name field")]
public string Name { get; set; }
}
}
HTML: 我正在使用標簽助手來呈現 HTML 代碼。
@model MiddleWareComponents.Models.Student
@{
ViewBag.Title = "Student";
}
<div class="form-group row">
<label asp-for="@Model.Name" class="col-sm-2 col-form-label"></label>
<div class="col-sm-10">
<input asp-for="@Model.Name" class="form-control" placeholder="Name">
<span asp-validation-for="@Model.Name" class="text-danger"></span>
</div>
</div>
<div class="form-group row">
<div class="col-sm-10">
<button type="submit" class="btn btn-primary">Create</button>
</div>
</div>
**控制器:** - - - - - - - -
[HttpPost]
public string Student(Student student)
{
if (ModelState.IsValid)
{
return "";
}
else
{
return "";
}
}
在網頁上,當我們轉到查看頁面源代碼時,我們可以看到所有帶有驗證錯誤訊息和檢查的 HTML,
<form method="post" class="mt-3" action="/home/student">
<div class="form-group row">
<label for="Name">Student Name</label>
<input data-val="true" data-val-required="Please provide a value for Name field" id="Name" name="Name" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="Name" data-valmsg-replace="true"></span>
</div>
<div class="form-group row">
<div class="col-sm-10">
<input type="submit" value="Save Student Details" />
</div>
</div>
<input name="__RequestVerificationToken" type="hidden" value="CfDJ8OX4l3Ci88lLoVbwSTker9nokg_bR6Cd914Efrrbcj_iXWC_CqwQvVwHuTf74vGW4CnpfZQgzdwX5kQTi3zi1IhXqgFAPKkGgzcFdHvF2-9KKa-ImHFvdkZBJF5-EvuuaRHlZ_QfcKWztr_p75bXQm0" /></form>
</div>
因此,當我在未填寫欄位的情況下單擊提交按鈕時,請求會轉到帶有空資料的控制元件,并在那里 model.state 屬性回傳 false。但是該錯誤未顯示在網頁上,并且不會將請求限制在網頁上。我正在尋找.Net 6中的標簽助手來幫助實作這一目標。任何人都可以提供幫助嗎?謝謝。
uj5u.com熱心網友回復:
根據您的描述,我認為您可以檢查您是否參考了 js 檔案以及 js 檔案的順序是否正確,您可以查看相關檔案以獲取更多詳細資訊:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.3/jquery.validate.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validation-unobtrusive/3.2.12/jquery.validate.unobtrusive.js"></script>
uj5u.com熱心網友回復:
如果您的模型狀態無效,您希望使用視圖模型而不是空字串回傳視圖:
[HttpPost]
public string Student(Student student)
{
if (ModelState.IsValid)
{
return RedirectToAction("yourAction", "yourController");
}
else
{
return View(student);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/514393.html
標籤:网asp.net-mvcasp.net 核心验证c#-3.0
下一篇:如何在選擇中排除選項的第一個值
