【问题标题】:MVC Asynchronous callMVC 异步调用
【发布时间】:2016-10-19 12:09:59
【问题描述】:

作为 MVC 的新开发人员,我对这将如何工作感到困惑:我需要在控制器内进行两个发布操作。 1.一个异步(文件数据和正文请求中的auth headers)。这会将文件上传到服务器并在服务器上返回文件的路径/名称 2.一同步。这是由我的视图的提交按钮触发的,应该等待上一次调用以确保我们上传了文件。

我的视图应该有两个 Html.BeginForm 每个动作一个?还是Html.BeginForm是提交按钮的一种,异步调用是jQuery实现的?

【问题讨论】:

  • 这真的取决于你的项目和需要。有多种方法可能。同一页面上的两个表单,使用 AJAX 调用处理的所有内容,使用表单发布和异步 AJAX 调用的混合模式。提供更多细节...

标签: jquery asp.net-mvc asp.net-mvc-4 asynchronous


【解决方案1】:

首先,这里有一些关于异步的混淆。在 Web 请求的上下文中,异步仅意味着处理请求的线程如果进入等待状态,则可以返回到池中。这通常是由于某种 I/O(数据库查询、HTTP 请求、文件系统访问等)造成的。是否使用异步的决定归结为是否会有活动线程“等待”某事的时间。

现在,至于你的表格,这真的取决于你在这里做什么。尤其是新手,你应该真正从“我需要做 X”的角度来处理问题,而不是“我已经决定要通过 Y 或 Z 完成某事”。在后者中,Y 和 Z 可能是完全错误的 X 方法,但我们无法知道这一点或给您不同的建议。

例如,为什么需要两个动作?单个操作既可以发布数据,也可以上传一个或多个文件。事实上,以这种方式处理它更有意义,因为这样您就不再依赖于等待另一个操作完成的一个操作。我可以看到想要分别处理这两者的唯一原因是,例如,您可以显示上传图像的预览,但即便如此,正确的方法是在 JavaScript 中使用 File API 并且仍然只发布一篇文章。

【讨论】:

  • 终于用一个动作完成了。谢谢。
猜你喜欢
  • 1970-01-01
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多