1
是否有一个良好的以公约为基础的方式,以避免重复这样的代码在我的控制器的操作方法?:ASP.NET MVC的Ajax /部分意见和DRY
if (Request.IsAjaxRequest())
{
return PartialView("EmployeeList", _service.GetEmployees());
}
return RedirectToAction("Index");
是否有一个良好的以公约为基础的方式,以避免重复这样的代码在我的控制器的操作方法?:ASP.NET MVC的Ajax /部分意见和DRY
if (Request.IsAjaxRequest())
{
return PartialView("EmployeeList", _service.GetEmployees());
}
return RedirectToAction("Index");
以下。如果所有的控制器从继承您可以控制基类,您可以在那里添加那一点逻辑。
喜欢的东西:
internal class MyBaseController : Controller
{
protected ActionResult PartialOrRedirect<T>(string partialName, Func<T> getModel, string actionName)
{
if (Request.IsAjaxRequest())
{
return PartialView(partialName, getModel());
}
return RedirectToAction(actionName);
}
}
public class MyDerrivedController : MyBaseController
{
public ActionResult Employees()
{
return PartialOrRedirect(
"EmployeeList",
() => _service.GetEmployees(),
"Index");
}
}
否则,您可以考虑使用一个扩展方法做就Controller
类型同样的事情。