我使用durandal模板+微風工作在asp.net mvc項目上。在我的下拉列表中敲除驗證不起作用
我想定義我的視圖的驗證邏輯添加/編輯操作。
到目前爲止,它適用於文本,從數據庫中填充下拉列表:當元素沒有包含任何數據時,該元素由於敲除驗證而被標記爲紅色。
但它不適用於從簡單列表中填充的下拉列表。
其填充列表中的元素來自於一個枚舉:
public class Transport
{
[Key]
int id { get; set; }
...
[Required]
public EnumCategory Category { get; set; }
}
public enum EnumCategory
{
Cat1,
Cat2,
Cat3
}
第一個問題:我不知道是否有可能從我的模型(服務器端)使用檢索枚舉它客戶端?現在,我創建了一個數組的客戶端來填充我的下拉:
var categories = [
{ id: 1, description: "Cat1" },
{ id: 2, description: "Cat2" },
{ id: 3, description: "Cat3" }];
問題二:顯示我的觀點時,如果類別下拉菜單中已經包含了一些數據,驗證工作(我指的是場被標記如果用戶清除下拉菜單,則顯示爲紅色)。但是,如果類別下拉菜單在顯示視圖時沒有包含任何數據,則下拉框不會標記爲紅色。
我在驗證失敗時所做的更改元素的背景顏色(如果無效)(感謝css'input-validation-error'>> red color)。
<select data-bind="options: $root.categories,
optionsText: 'description',
optionsValue: 'id',
optionsCaption: 'Choose...',
value: category,
validationOptions: { errorElementClass: 'input-validation-error' },
valueUpdate: 'afterkeydown'">
</select>
有沒有人知道爲什麼我的下拉列表的驗證沒有工作?
謝謝。
,當我說「明確的下拉」我應該說,我選擇的是第一項「選擇......」因爲我有一個'optionsCaption:.....'在我的選擇中。在我的解決方案中,如果我選擇第一個元素(即「選擇...」),元素不會以紅色標記,因此我不知道爲什麼? – Bronzato