从windows桌面应用程序中显示ASP.NET应用程序的页面并获取结果



考虑msdn中的ASP.NET Core MVC教程:我想从windows桌面应用程序中显示MVC应用程序的一个页面(例如创建电影页面(。但是,网页不需要嵌入Winforms/WPF对话框的框架中。如果页面显示在当前浏览器中,那就足够了。

当用户完成并创建了电影时,调用windows的应用程序应该会收到新创建的电影。到目前为止我所拥有的:

  1. 在Winforms/WPF中重新创建输入表单,并使用底层apicontroller,它可以访问MVC应用程序的存储库(我已将其添加到原始教程中(
  2. 使用Process.Start打开网页,并添加一个标识调用客户端的参数。用户完成后,网页会通过外部消息代理(如RabbitMQ(通知客户端。通知包括创建的实体的id,允许桌面应用程序通过id从apicontroller获取实体
  3. 想知道是否有类似于.net事件或涉及.net MAUI或else的var res = Form.ShowDialog()的本地选项

原因:我想要一个几乎可以在任何地方使用的完整web应用程序。但主机窗口应用程序中会有一个插件,它应该尽可能多地使用网络应用程序,但可以集成到主机应用程序中。示例:Outlook vsto addin带有一个按钮,用于创建电影并在电子邮件正文中包括电影描述等。

我使用了第二个选项:

  1. My ApiController有一个额外的操作,它返回用Process.Start显示的表单的个人url
  2. 客户端在自己的RabbitMQ队列中等待消息,并在执行此操作时阻止所有输入
  3. 发送表单时,网页会在队列中发布一条消息
  4. 客户端接收带有项目id的消息,并可以从ApiController获取新创建的项目id并进行处理

因此,我不必在WinForms对话框中复制表单。用户可以从桌面应用程序或直接通过网络应用程序创建新项目。

最新更新