【问题标题】:Calling a Web API Controller from an MVC View to return an XML file从 MVC 视图调用 Web API 控制器以返回 XML 文件
【发布时间】:2014-02-28 05:58:43
【问题描述】:

我有一个既是 Web API 又是 MVC 项目的项目。我有一个显示 MVC 控制器查询结果的 MVC 视图;我还从 Web API 控制器公开了相同的数据。

我的目标是在视图上放置一个链接,该链接将调用 Web API 并将 XML 响应作为文件返回,并传入用于生成视图的相同查询。

什么是实现这个的好方法?对于奖励积分,我可以在我的视图中解析 Web Api 路由名称来构建链接吗?

编辑

我试过Slicksim's建议:

<a href="@Url.HttpRouteUrl("NameOfWebApiRoute", new { id = Model.Id })">
  Testing 123
</a>

这只是在浏览器窗口中显示 XML 结果。我的目标是将其作为 XML 文件传输,例如显示“另存为”对话框并发送它。

【问题讨论】:

    标签: c# asp.net-mvc asp.net-mvc-4 asp.net-web-api


    【解决方案1】:

    您可以像使用 Url.RouteUrl 一样构建链接,url 助手有一个 HttpRouteUrl。

    这应该为您构建一个简单的 href,您可以使用它来浏览到 web api 路由并获取 xml 文件,然后浏览器可以决定如何处理它。

    http://msdn.microsoft.com/en-us/library/system.web.mvc.urlhelper.httprouteurl(v=vs.118).aspx

    【讨论】:

      【解决方案2】:

      尝试按照此处的建议添加 html5“下载”属性:Force a browser to save file as after clicking link

      <a href="@Url.HttpRouteUrl("NameOfWebApiRoute", new { id = Model.Id })" download>
        Testing 123
      </a>
      

      【讨论】:

        猜你喜欢
        • 2015-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-30
        • 1970-01-01
        相关资源
        最近更新 更多