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