2013-06-29 27 views
1

我有我的看法如下代碼:Html.TextBoxFor作品,但EditorFor拋出一個錯誤 - 爲什麼?

@model MyDomain.ViewModels.EditCapacityViewModel 

`....

@Html.EditorFor<Capacity, >(m => m.Capacity.NumberOfWeeks) 

這是我的視圖模型 - 直穿過我的模型類

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

我不知道爲什麼這不起作用。我究竟做錯了什麼?

回答

1

EditorFor僅適用於沒有自定義模板的字符串。

您需要在路徑~/Views/Shared/EditorTemplates/Int32.cshtml上創建一個Int32模板才能完成此項工作。

如果您不想爲Int32類型創建模板,請使用TextBoxFor,該模板將按照您已經實現的方式工作。

+0

對不起,我原來的問題中的錯誤。 是的,我確實有代碼,因爲你已經突出顯示,並且仍然收到錯誤。 DataType是一些測試。我確實希望它是一個整數。 – Urkel

+0

@Urkel:爲什麼'NumberOfWeeks'類型是日期?這對我來說毫無意義。你能解釋一下你試圖做什麼嗎? –

+0

不,NumberOfWeeks是int類型。 – Urkel

相關問題