我想爲動態類型創建擴展方法,但出於某些原因,在編譯代碼時出現錯誤。下面是我的代碼示例 這我使用的方法是如何爲動態類型創建MVC擴展方法
public List<State> getStates()
{
return new List<State>(){
new State{StateID="1",StateName="Tamil Nadu"},
new State{StateID="2",StateName="Assam"},
new State{StateID="3",StateName="Andra"},
new State{StateID="4",StateName="bihar"},
new State{StateID="5",StateName="Bengal"},
};
}
和我的擴展方法是
public static class helper
{
public static IEnumerable<SelectListItem> getIntoDropDownState(this List<dynamic> data,string textField,string valueField)
{
return data.Select(x => new SelectListItem
{
Text = x.textField,
Value = x.valueField
});
}
}
我的編譯錯誤,我得到的是
編譯器錯誤信息:CS1928 : 'System.Collections.Generic.List' 不包含'getIntoDropDownState'的定義,並且最佳的 擴展符合HOD超載 「LearnAuthentication.Controllers.helper.getIntoDropDownState(System.Collections.Generic.List, 字符串,字符串)」有一些無效參數
我想用這樣的擴展方法,而我面對不支持錯誤
@Html.DropDownListFor(x => x.StateID, new LearnAuthentication.Controllers.Address().getStates().getIntoDropDownState("StateName", "StateID"), "Select State", 0)
任何人都可以幫助
此代碼編譯爲我。你遇到了什麼錯誤? –
@ stephen.vakil你好我已更新錯誤,請看看。謝謝 –
@LijinJohn,那個擴展方法不會做你所描述的。你可以使用反射和泛型 – Nkosi