我正在使用DropDownListFor
,並提供缺省選擇-- Select Make --
,它具有空值。我想爲用戶提供一些提示(如「選擇製作」),但不希望允許用戶實際提交該值。目前該網站允許這一點通過。MVC 5 - 添加客戶端驗證以拒絕默認值?
我認爲加入最小長度爲2會防止它,但沒有運氣。
我對.NET MVC相當陌生,所以讓我知道如果我以完全錯誤的方式來做這件事。
實際POST請求體是:
Make=&OtherArgument=1&NextArgument=test
查看代碼:
@Html.LabelFor(m => m.Make)
@Html.DropDownListFor(m => m.Make, Model.Make, "-- Select Make --")
@Html.ValidationMessageFor(m => m.Make)
型號代碼:
[Required(ErrorMessage = "*", AllowEmptyStrings = false)]
[StringLength(50, MinimumLength = 2, ErrorMessage = "*")]
public IEnumerable<SelectListItem> Make = new List<SelectListItem>
{
new SelectListItem
{
Text = "Deere",
Value = "Deere"
},
new SelectListItem
{
Text = "Case",
Value = "Case"
},
new SelectListItem
{
Text = "CAT",
Value = "CAT"
}
};
要麼刪除Default參數,要麼檢查jquery中所選下拉列表的值 –
這有點難以分辨。你似乎有一個'OtherArgument'的值被張貼出來,但是從你顯示的內容來看,它並不清楚它會從哪裏來。也許我只是沒有看到明顯的東西。 –
@ArijitMukherjee如果我刪除了默認參數,那麼下拉菜單會自動選擇第一個選項。我不希望這樣做,因爲用戶更可能在不更改選項的情況下提交表單(我想迫使他們選擇)。 –