在剃須刀頁面上,我有兩個“提交”型別的按鈕。
第一個按鈕用于向本地表添加資料,第二個按鈕用于添加資料庫中的所有列。
我想阻止第一個按鈕檢查欄位的驗證,只有第二個按鈕檢查欄位。
如何防止第一個按鈕檢查欄位的驗證?
(ASP.NET 核心)
uj5u.com熱心網友回復:
添加formnovalidate到第一個按鈕輸入。并且formnovalidate 屬性可以跳過客戶端的驗證,但不能跳過服務器端的驗證。因此,您可以清除模型狀態以跳過服務器端的驗證。下面是一個mvc的demo,大家可以參考一下。
自定義.cs:
public class Custom
{
public string name{ get; set; }
public int Id { get; set; }
}
在 HomeController.cs 中:
public IActionResult Submit()
{
return View();
}
[HttpPost]
public IActionResult Submit(Custom custom)
{
if (!ModelState.IsValid)
{
ModelState.Clear();//clear model state to skip validation in server side
return View("Submit");
}
return View("Submit");
}
看法:
@model nnnn.Models.Custom
@{
ViewData["Title"] = "Submit";
}
<h1>Submit</h1>
<h4>Custom</h4>
<hr />
<div >
<div >
<form asp-action="Submit">
<div asp-validation-summary="ModelOnly" ></div>
<div >
<label asp-for="name" ></label>
<input asp-for="name" />
<span asp-validation-for="name" ></span>
</div>
<div >
<label asp-for="Id" ></label>
<input asp-for="Id" />
<span asp-validation-for="Id" ></span>
</div>
<div >
<input type="submit" value="Create" formnovalidate />
<input type="submit" value="Save" />
</div>
</form>
</div>
</div>
<div>
<a asp-action="Index">Back to List</a>
</div>
@section Scripts {
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}
結果:

uj5u.com熱心網友回復:
我相信有很多方法可以處理這個......
您可以使用不同的按鈕定向到不同的控制器,其中一個就像在此鏈接中一樣,并且您可以使用不同的方式。檢查一下。我希望這有幫助。
禁用驗證鏈接
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/475168.html
上一篇:在編譯期間驗證傳遞給建構式的引數
