1
搞乱我有一个自定义模板~/Views/Shared/EditorTemplate/String.cshtml
,它似乎会导致异常:MVC 4 - 字符串自定义模板与枚举
The model item passed into the dictionary is of type 'Proj.Models.EnumType', but this dictionary requires a model item of type 'System.String'.
它似乎只发生在Enums
。如果我删除模板,它也会消失。该模板似乎并没有导致它,我认为它甚至没有这么做。我可以把任何东西放在那里,例外是一样的。
因此......如果我有custom template
,我可不可以使用@Html.EditorFor
与model
与enum
?
一些背景:
型号:
namespace Proj.Models
{
public enum EnumType
{
A = 0,
B = 1,
C = 2,
}
public class Mod
{
[Required]
public String Name;
[Required]
public EnumType Letter;
}
}
查看:
@model Proj.Models.Mod
@Html.EditorFor(m=>m) // Exception happens here
您确实需要提供比这更多的上下文。你的模型是什么样的?你的观点和模板是什么样的?你的控制器操作方法是什么样的?给我们一些东西来重现问题。 – 2013-04-29 03:54:40
对不起,我添加了一些 – Andrew 2013-04-29 04:03:44
那么,首先Required属性是毫无意义的,因为Enum是一个值类型,它们不能是Null,因此它们将始终有一个值,因此永远不会失败Required验证。其次,你期望EditorFor对Enum做什么?没有“枚举选择器”方法。最后,你实际上并没有提供模型类型。 – 2013-04-29 04:06:48