【问题标题】:Can I serve a HTML response from a POST using the ASP.NET Web API framework?我可以使用 ASP.NET Web API 框架从 POST 提供 HTML 响应吗?
【发布时间】:2013-06-28 07:46:00
【问题描述】:

我的页面上有一个非常基本的表单:

        <form action="api/file" method="post" enctype="multipart/form-data">
            <input type="file" multiple />
            <input type="submit" value="Submit" />
        </form>

我成功提交了我的file,以便将其上传到我的服务器上。我的服务器通过返回一些 json 内容来响应:

内容如下:

[{"name":"Untitled.png","path":"http://localhost/uploads/Untitled.png","size":10}]

我的问题:我怎样才能从我的服务器截取这个响应并将其显示在我的页面上?我是否必须使用 AJAX 发布我的表单才能有机会获得回复?

类似:

$.ajax({
        type:"POST", 
        data: WHAT_HERE?, 
        url:"api/file",
      success: function(data){
          $("#post").html(data);
      },
       error: function(){
          $("#post").html('An error occurred.');
      }
});

感谢您的帮助。

【问题讨论】:

  • 您需要使用服务器端语言来处理表单提交(例如 PHP、Java),它会调用您的上传脚本、获取响应并将用户重定向到格式化页面。跨度>
  • 我不太理解您的评论。我已经编写了服务器端部分来接收请求(上传文件)。这是 Web API 控制器(Microsoft),此服务器以 json 响应。现在我希望我的客户端检索此响应并显示它。
  • 您的服务器正在发回data 我想您发送的内容被浏览器解释为可下载内容,因此它会打开下载对话框。尝试发回一个简单的字符串并将其显示在$("#post")
  • 从最初阅读您的问题开始,尚不清楚“api/file”是否为 .NET - 这就是您的表单处理内容,因此您的控制器被设置为该框架的一部分是什么将允许您发送格式化的响应。当它到达客户端时,为时已晚(对于非 JS)。你的问题是真的 - '我可以使用 ASP.NET Web API 框架从 POST 中提供 HTML 响应吗?'
  • 你是对的,我编辑我的问题要清楚。

标签: jquery html asp.net asp.net-web-api


【解决方案1】:

问题在于响应内容类型。 我们遇到了类似的问题,并通过在响应时将 content-type 添加到 application-json 来解决。

当然,我们在 MVC2 和 3 中这样做了,可能必须在 MVC4 中完成,但从未在 WebAPI 上尝试过。 如果我设法找到它是如何在 WebAPI 上完成的,我将编辑我的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-15
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多