我在MVC3應用程序中創建用戶控件。我的視圖模型看起來像這樣:ASP.NET MVC3 Html.EditorFor和對象類型的屬性
public class MyViewModel
{
public object Value { get; set; }
}
Value屬性可能是int,字符串或布爾值,所以我不能用[DataType]
屬性。
當我創建我的視圖模型:
var viewModel = new MyViewModel { Value = "" };
或
var viewModel = new MyViewModel { Value = 1 };
我認爲這個代碼:
<%: Html.EditorFor(p => p.Value) %>
應該呈現類型文本框的HTML輸入。不幸的是沒有呈現。
當我使用bool值或一些非空字符串時,一切正常。這裏有一個例子:
var viewModel = new MyViewModel { Value = true };
Html.EditorFor
呈現複選框輸入:
我做了一些研究,但現在我沒有找到解決辦法。
這是簡化的例子。在真正的應用程序中,我有泛型類型 - 就像你說的。但我需要能夠創建'MyViewModel'列表。正如你所知我不能創建泛型類型列表,所以我創建了帶有屬性Value的object類型的接口('IMyViewModel')。 – krolik