我有以下函數從字符串類型的控制器名稱返回動作名稱的選擇列表的列表:get_all_action的獲取來自控制器的名稱的方法是在字符串格式
public ActionResult get_all_action(string controllername)
{
Type t = Type.GetType(controllername);
MethodInfo[] mi = t.GetMethods();
List<SelectListItem> action = new List<SelectListItem>();
foreach (MethodInfo m in mi)
{
if (m.IsPublic)
if (typeof(ActionResult).IsAssignableFrom(m.ReturnParameter.ParameterType))
{
action.Add(new SelectListItem() { Value = m.Name, Text = m.Name });
}
}
var List = new SelectList(action, "Value", "Text");
return Json(List, JsonRequestBehavior.AllowGet);
}
參數controllername()傳遞例如「AccountController」。但例外是在
MethodInfo[] mi = t.GetMethods();
拋出:
Object reference not set to an instance of an object.