![](/img/trans.png)
[英]Is it possible to disable client side validation for a single model property in MVC
[英]MVC disabling client side validation on a model field
我有一個 model 用於創建/編輯項目,這些項目可以屬於一個類別。
類別呈現為下拉列表,因此用戶可以選擇類別,或通過文本框填寫新類別。
我遇到的問題是下拉菜單似乎想強制用戶從下拉菜單中選擇 select 一個值。 該字段的預期用途是可選的。
以下是相關的 model 屬性:
[Display(Name = "Category")]
public int CategoryId { get; set; }
public System.Web.Mvc.SelectList Categories { get; set; }
在我看來:
<div class="form-group">
@Html.LabelFor(m => m.CategoryId, new { @class = "control-label" })
@Html.DropDownList("CategoryId", Model.Categories, "Select a category", new { @class = "form-control" })
</div>
<input type="submit" value="Create" class="btn btn-primary" title="Create new item" />
以及我如何在 controller 中設置屬性:
// categories is a List of POCO class with CategoryId and CategoryName fields.
Categories = new SelectList(categories, "CategoryId", "CategoryName")
當我瀏覽到該頁面並單擊“創建”時,將關注類別下拉列表,這意味着 JS 認為它丟失了,但沒有顯示錯誤消息,因為我沒有設置 ValidationMessageFor() 幫助器。
的渲染類是
form-control input-validation-error
那么如何使這個字段成為可選的呢?
編輯:在 select 上渲染后的 data-* 屬性是
data-val-number="The field Category must be a number." data-val-required="The Category field is required."
您必須將CategoryId
設為可為空:
[Display(Name = "Category")]
public int? CategoryId { get; set; }
public System.Web.Mvc.SelectList Categories { get; set; }
這樣,您可以將類別設置為可選字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.