当前情况:一个 ASP.NET MVC 网站,其中包含许多 Controller 和操作方法,以及允许添加配方的 View 。
现在,我必须创建一个 WPF 应用程序作为 UI 来添加食谱(与网站相同)。
我的问题是:我可以使用 ASP.NET MVC 站点来公开 WPF 应用程序使用的服务操作(以及如何做到这一点)?或者我应该更好地为此创建专用的 WCF 服务,并让 WPF 和 ASP.NET MVC 站点使用这些服务?
谢谢, 路德维希
最佳答案
我已经成功地使用 MVC Controller 和操作来为来自浏览器的 HTML View 以及外部应用程序提供服务。它运行良好,但就目前而言,您需要一些工具:
- 我有一个 Action 过滤器,它以客户端请求的格式返回 Action 产生的模型(通过检查 Accepts header ,查找 application/json 或 text/xml)。因此,我可以将生成的模型序列化为 JSON 或 XML(我更喜欢 JSON)。
- 您需要在您的客户端应用程序中找到或创建一个简单的 API,以便为您的操作创建 WebRequest,然后处理结果。我创建了一个可以 POST 或 GET 的简单 API,然后将任何生成的 JSON 反序列化为一个对象(使用 JSON.NET)。您可以使用 REST 客户端 API。
但是,如果您采用 WCF-REST 路线,则可以避免一些额外的工具。更好的是,我会研究 ASP.NET MVC 4 的 WebApi 功能(这是我将迁移到的功能)。
郑重声明,我认为 WCF 很强大,但我们的组织已经厌倦了转动所有旋钮并按下所有开关以使其正常工作以及从一次安装到安装的轻松设置是多么复杂。其他。另一方面,MVC 可以正常工作……并且由于我们已经使用它来为我们的 HTML View 提供服务,因此只需添加一些额外的代码就可以让它处理服务调用,这真是一件令人愉快的事情。当然,这只是个人喜好。
关于c# - 使用 ASP.NET MVC 操作方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10479055/