asp.net-mvc - asp.net mvc 3 中 ajax actionresults 的单独 Controller

标签 asp.net-mvc ajax model-view-controller asp.net-mvc-3 architecture

对于 ajax 调用 actionresult 我正在考虑两种选择

  1. 将 Action 结果放在 最适合其功能的 Controller
  2. 为 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/

相关文章:

css - 无法使用 Bootstrap 3 在 MVC Razor View 中应用控件对齐

jquery - 如何在 ASP.NET MVC 页面的文本框中仅输入数字?

Java RMI 部署

java - JTable 不会更新 fireXXXXX() 事件

javascript - 在 Angular/.NET MVC 中发出发布请求后如何使用模型进行重定向?

javascript - 部分 View 中的明确值(多个)

javascript - 当我通过 AJAX 管理我的网站时如何更新我的 URL?

json - 当我期望 JSON 时得到 "XML Parsing Error: not well-formed"

javascript - javascript 中的 POST 请求失败,但可以在 fiddler 中看到成功的响应

java - ActionListener 没有响应 [示例]