我在视图中有以下代码:
@model MyDomain.ViewModels.EditCapacityViewModel
`....
@Html.EditorFor<Capacity, >(m => m.Capacity.NumberOfWeeks)
这是我的ViewModel - 直接传递给我的模型类
public class EditCapacityViewModel
{
public Capacity Capacity { get; set; }
}
我的容量模型类:
[Display(Name="Number of Weeks")]
[DataType(DataType.Date)]
public virtual int NumberOfWeeks { get; set; }
使用上面的代码,我收到错误: 传递到字典中的模型项的类型为“System.Int32”,但此字典需要“System.String”类型的模型项。
如果我将EditorFor转换为TextBoxFor,它就可以工作。
我不知道为什么这不起作用。我做错了什么?
答案 0 :(得分:1)
EditorFor
仅适用于没有自定义模板的字符串。
您需要在路径Int32
上创建~/Views/Shared/EditorTemplates/Int32.cshtml
模板才能实现这一目标。
如果您不想为Int32
类型创建模板,请使用可以正常使用的TextBoxFor
。