首页 > 解决方案 > Ajax 可以访问非控制器方法吗?

问题描述

我有一个包含许多帮助功能的类,可以轻松地为我的网络应用程序做很多事情。我曾尝试使用 Ajax 并访问此类,但没有成功。我在尝试一些不可能的事情吗?Ajax 只能访问控制器吗?

标签: c#ajaxasp.net-mvc

解决方案


简短的回答。是的,您可以通过 RegisterRoutes 方法中的 RouteConfig 类中的自定义路由对控制器外部的类进行 ajax 调用。设置某些路由(比如你的辅助函数)被处理程序忽略并让流量通过。

您的情况最正确的答案。你不应该。任何辅助函数的易用性都会随着您必须做的工作而迅速减少,因为您现在负责处理所有进出您的辅助类的 http 协议,以便从客户端到服务器以及返回。

...而您的同事(或任何继承您的代码的人)最终会厌恶您违反惯例而没有真正需要这样做。

无需重新发明轮子,只需在您的项目中设置一个 Helper 控制器,并使其负责来回处理 http 请求并包装您的辅助函数。它可以是一个基本的控制器,不返回任何操作结果,并且您不必构建视图,它可以只负责返回 Json 而没有构建任何其他内容。它不会打破惯例,您将能够利用多年的知识和构建 http 处理,并且您的开发人员不会想在睡梦中谋杀您,因为您只是因为可以做某事。


推荐阅读