我使用 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>
有人知道为什么我的下拉列表中的验证不起作用吗?
谢谢。