1

在我看来,我有以下代码:

@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,它就可以工作。

我不知道为什么这不起作用。我究竟做错了什么?

4

1 回答 1

1

EditorFor仅适用于没有自定义模板的字符串。

您需要Int32在路径上创建一个模板~/Views/Shared/EditorTemplates/Int32.cshtml才能使其正常工作。

如果您不想为Int32类型创建模板,TextBoxFor请按照您已经意识到的那样使用它。

于 2013-06-29T00:43:28.037 回答