对于 ajax 调用 actionresult 我正在考虑两种选择
- 将 Action 结果放在 最适合其功能的 Controller
- 为 ajax 调用制作一个单独的 Controller
在第二种方法中,我可以使用单独的文件在功能上划分 Controller ,并在每个文件中使用部分 ajaxcontroller
类。
如果我想将一些 actionfilter 属性应用于除 ajax actionresults 之外的 actionresults,则第二个选项可能会有所帮助,例如 Authorize 属性可能应用于正常的操作结果。我可以使用 Ajaxonly ajax actionresults 的属性以保护它们
你更喜欢哪个选项
最佳答案
你为什么要这么做?对我来说, Controller 与特定模型相关联,而不是特定类型的输出格式。
public ActionResult Users()
{
var users = _repository.Find();
var viewModel = Mapper.Map(users); // automapper or similar
return Request.IsAjax() ? Json(viewModel) : View(viewModel);
}
回答您的更新
最好创建一个 CustomAuthorizeAttribute
来检查它是 ajax 请求还是常规请求并进行适当的授权。您的控制者不应该知道授权是如何进行的。
关于asp.net-mvc - asp.net mvc 3 中 ajax actionresults 的单独 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6327717/