【问题标题】:How can I transfer data to html page from Web API redirect?如何将数据从 Web API 重定向传输到 html 页面?
【发布时间】:2017-09-29 04:07:37
【问题描述】:

如何在由 Web API 重定向生成的新页面中拥有动态 URL??

public HttpResponseMessage Get(string id)
        {

            var URL = "myurl";
            System.Web.HttpContext.Current.Response.Redirect("mypage.html");           

        }

<a href="{{myurl}}></a> ?????????????????? </body> </html>

【问题讨论】:

  • 不确定这里发生了什么,但我看到该方法返回一个 HttpResponseMessage,这意味着您可以返回 302 消息头(重定向)以及您希望客户端重定向到的 URL。此外,如果这是一个 Ajax 请求,它也不容易工作。您需要在 JavaScript 中检测 302 并自己进行重定向。

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


【解决方案1】:
[HttpGet]
public RedirectResult Get()
{
    string URL ="MYPAGE.HTML";
    return RedirectPermanent(URL);
}

我不知道到底想要做什么,但如果你想重定向到特定的 Url,那么可以使用上述方式实现,但如果你想从 html 中获取 url,那么你需要将 Url 作为请求传递参数如下。

 [HttpGet]
public RedirectResult Get(string downloadURL)
{
  string redUrl="http://www.y.com/l.htm?"+downloadURL:
    return RedirectPermanent(redUrl);
}

从上面,响应将被重定向到目标 html 页面,下载链接作为查询字符串,您可以通过查询字符串在 html 页面中设置下载链接。

【讨论】:

    【解决方案2】:

    在重定向期间无法获取以这种方式生成的变量。您确定需要此重定向吗?

    【讨论】:

    • 我怎样才能做到这一点?在 get 方法上,用户被重定向到一个有下载链接的页面,这个链接需要通过 api 传递。有没有更好的办法?
    • 你真的要重定向用户吗!?你在你的项目中使用 MVC 吗?然后你应该创建一个视图。
    • 这不是 MVC。这是一个休息服务。移动设备使用此服务,然后他被重定向到具有下载链接的页面。最好的解决方案?
    【解决方案3】:

    我有同样的想法,所以我试图处理这个问题,希望我的代码可以帮助你遵循一些方法
    PS:一个控件处理不同的web api Model

    public class ff1Controller :BaseController<travel>
        {
            public ff1Controller()
            {
    
            }
        }
        public class ff2Controller : BaseController<a1>    
        {
            public ff2Controller()    
            {
    
            }
        }
    

    【讨论】:

      【解决方案4】:

      这是另一种方法,希望我的方法可以帮助你

       private gigadeEntities1 db = new gigadeEntities1();
       public IQueryable GetAll(string id)
              {
                  switch(id)
                  {
                      case "travel":
                          return db.travel;
                      case "announce":
                          return db.announce;
                  }
      
                  return null;
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-21
        • 2016-03-06
        • 1970-01-01
        • 2012-01-02
        • 1970-01-01
        • 2017-01-03
        • 2019-09-24
        • 1970-01-01
        相关资源
        最近更新 更多