M K*_* II 6 c# generics asp.net-mvc
我想在我的Base控制器中创建一个方法,该方法将获取一个列表并将其作为SelectList返回.我写了一个方法,网站编译,但我得到这个消息:
无法
1[System.Web.Mvc.SelectListItem] GetSelectList[T](System.Collections.Generic.IEnumerable
在控制器'PublicationSystem.Controllers.BaseController'上调用操作方法'System.Collections.Generic.IEnumerable 1 [T],System.String,System.String,System.String,System.Object)'因为action方法是通用的方法.
参数名称:methodInfo
我想知道我做错了什么.这是代码:
public partial class BaseController : Controller
{
public IEnumerable<SelectListItem> GetSelectList<T>
(
IEnumerable<T> itemList,
string textField,
string valueField,
string defaultPrompt = "",
object defaultValue = null)
{
IEnumerable<SelectListItem> returnList = null;
if (!string.IsNullOrEmpty(defaultPrompt))
{
returnList = Enumerable.Repeat(
new SelectListItem { Value = (string)defaultValue, Text = defaultPrompt },
count: 1);
}
var textProp = typeof (T).GetProperty(textField);
var valueProp = typeof (T).GetProperty(valueField);
returnList = returnList.Concat
(itemList
.Select(x =>
new SelectListItem
{
Value = Convert.ToString(valueProp.GetValue(x)),
Text = Convert.ToString(textProp.GetValue(x)),
}).Distinct().ToList());
return returnList.ToList();
}
}
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.LowercaseUrls = true;
routes.MapMvcAttributeRoutes(); // Errors here
//..
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3339 次 |
最近记录: |