【发布时间】:2016-08-26 01:54:02
【问题描述】:
我想为动态类型创建扩展方法,但由于某些或其他原因,我在编译代码时出错。下面是我的代码示例 我使用的方法是
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”的定义和最好的 扩展方法重载 'LearnAuthentication.Controllers.helper.getIntoDropDownState(System.Collections.Generic.List, string, string)' 有一些无效参数
我想使用这样的扩展方法,但我遇到了错误
@Html.DropDownListFor(x => x.StateID, new LearnAuthentication.Controllers.Address().getStates().getIntoDropDownState("StateName", "StateID"), "Select State", 0)
谁能帮忙
【问题讨论】:
-
这段代码为我编译。你遇到了什么错误?
-
@stephen.vakil 嗨,我已经更新了错误,请看一下。谢谢
-
@LijinJohn,该扩展方法不会按照您的描述进行。你可以使用反射和泛型
标签: c# asp.net-mvc asp.net-4.5