文字列型のコントローラー名からアクション名の選択リストを返す関数は次のとおりです。
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);
}
get_all_action()のパラメーターcontrollernameは、たとえば「AccountController」として渡されます。しかし、例外はでスローされます
MethodInfo[] mi = t.GetMethods();
なので:
Object reference not set to an instance of an object.