拥有使用该预期函数求如何通过泛型函数返回JsonResult <T>?
public class HomeController: BaseController
{
public JsonResult HomeController()
{
var model = ExecuteHandledJTableJsonOperation(() =>
{
//do some stuff
}, LocalResources.CommonErrorMessage);
return Json(model);
}
}
以及期待Func键
public class BaseController : Controller
{
public T ExecuteHandledJTableJsonOperation<T>(Func<T> actionToExecute, string errorMessage)
{
try
{
return actionToExecute.Invoke();
}
catch (Exception ex)
{
LogEntry entry = new LogEntry();
entry.AddErrorMessage(ex.Message);
entry.AddErrorMessage(String.Format("Inner Exception:", ex.InnerException.Message));
//entry.Message = ex.Message;
entry.Priority = 1;
entry.EventId = 432;
entry.Severity = System.Diagnostics.TraceEventType.Error;
writer.Write(entry);
return Json(new { Result = "ERROR", Message = errorMessage });
}
}
}
它,当我试图返回JSON检索我一个错误的基础方法的基础方法(新{的行动结果=“错误”,消息= errorMessage});
不能键入“System.Web.Mvc.JsonResult”隐式转换为“T”
我知道这是更好,如果我创建人希望两个动作,一个执行的ExecuteHandledJTableJsonOperation
的重写/回报通常情况下,当操作出现问题时执行第二个。
事情是这样的:
return ExecuteHandledJTableJsonOperation(() =>
{
//do something
return Json(new { Result = "OK", Records = excepciones, TotalRecordCount = excepciones.Count() });
},() =>
{
return Json(new { Result = "ERROR", Message = Properties.Resources.CommonErrorMessage });
});
但我想知道如何解决第一种情况: 无法隐式转换类型“System.Web.Mvc.JsonResult”到“T”
谢谢。