在WPF应用程序中使用ASP.NET MVC控制器操作

时间:2013-10-14 14:08:55

标签: wpf asp.net-mvc asp.net-mvc-4 asp.net-web-api asp.net-web-api-routing

我正在设计一个具有两个UI的Web应用程序 - 一个是传统的网页(HTML视图),另一个是WPF应用程序。我知道,为了有一个关注的分离,最好设计如下所示,一个由MVC应用程序和WPF应用程序使用的Web API。

enter image description here

然而,我是一个时间紧张,我想知道我是否可以逃脱只有传统的MVC设计如下。此外,我可能有更多的非CRUD操作,如果我去WebAPI,将不得不实现为RPC样式,增加了webAPI的复杂性(更多的工作,更多的时间)。

enter image description here

我唯一的问题是 - 可以在WPF应用程序中使用MVC操作吗?如果是,我是否需要使用任何特殊的API来完成this post中提到的那样,或者新的HttpClient包是否足够?

1 个答案:

答案 0 :(得分:1)

是的WPF应用程序,就像能够发送HTTP请求和接收响应的任何其他应用程序一样,能够使用ASP MVC控制器操作。

毕竟,ASP MVC框架只解析URL,推断路由信息(区域,控制器,动作,参数等),最后在发送HTTP响应之前调用相关的参数动作。

来自MSDN

  

相比之下,用户与ASP.NET MVC应用程序的交互是   围绕控制器和行动方法组织。控制器   定义动作方法。控制器可以包括尽可能多的动作方法   如所须。操作方法通常具有一对一映射   用户互动。用户交互的示例包括输入a   进入浏览器的URL,单击链接,然后提交表单。每个   这些用户交互会导致将请求发送到服务器。在   在每种情况下,请求的URL包括MVC的信息   框架用于调用操作方法。

因此,即使是简单的HttpClient也足以与ASP MVC控制器动作进行交互。 但您也可以使用您选择的框架或库来帮助您构建HTTP请求和/或将HTTP响应转换为更适合您应用程序的内容。

这不是强制性的,但可以节省一些时间!

话虽如此,要注意所有需要身份验证的场景,否则会让事情变得更难:

  • 如果您需要表单身份验证,则可以检索您的身份验证 首先是cookie,然后将其包含在将来的HTTP请求中(参见 这个post了解更多信息)
  • 如果您需要Windows身份验证,那么您必须提供您的凭据(请参阅asp.net网站上的page