【问题标题】:MVC Jquery POST data, redirect to url from ActionResultMVC Jquery POST 数据,从 ActionResult 重定向到 url
【发布时间】:2012-11-09 10:38:46
【问题描述】:

我目前正在使用 mvc。我有一个页面上有多个按钮,这确实使事情变得有些复杂。但是,我使用的按钮调用 jquery 函数将数据发布到控制器。这按预期工作,数据到达操作,操作执行除重定向之外的所有预期操作。

该函数将数据发布到控制器,或者允许控制器查看值并建立一个 URL,然后重定向到。但是重定向不起作用,并且该函数按预期调用了成功函数。如果我将数据返回到警报中,页面的代码将在警报窗口中返回,而不是 url。

代码如下:

 <input type="submit" value="Assign" name="Assign" onclick="doRedirect()" />

function doRedirect() {
    var action = '@Url.Action("Redirect")';
    //alert(action);
    var opt = {
        type: "POST",
        data: {
            Team: $('#Team option:selected').val()
        },
        url: action,
        success: RedirectSuccess

    };
    jQuery.ajax(opt);
}

    function RedirectSuccess(data) {
        if (data != undefined) {   
             data;          
             }
    }

public ActionResult Redirect(string Team)
    {

        var hostName = "http://localhost/test/testpage.aspx?";
        var team = "&Team=" + Team;


        var filterUrl = Team;


        return Redirect(filterUrl);**//this doesnt work**

    }

【问题讨论】:

    标签: c# jquery asp.net-mvc


    【解决方案1】:

    尝试发回您想要重定向到的 URL,而不是从操作中发回重定向结果。在客户端,您读取请求的响应,并通过将 window.location.href 设置为您从服务器返回的 URL 来进行重定向。

    例如,在您的操作中,您可以将 URL 作为 JSON 返回:

    return Json(new { url: filterUrl });
    

    在你的成功回调中,你这样做是为了重定向:

    if (data !== undefined && data.url !== undefined) {   
          window.location.href = data.url;
    }
    

    【讨论】:

    • @RiggleBits 很高兴它有帮助,如果您只需要从操作中发回 url,那么您的确实是一个更短/更清洁的解决方案。
    【解决方案2】:

    这就是我所做的。

    public string Redirect(string Team)
    {
    
        var hostName = "http://localhost/test/testpage.aspx?";
        var team = "&Team=" + Team;
    
    
        var filterUrl = hostname + Team;
    
    
        return filterUrl;
    }
    
    function RedirectSuccess(data) {
            if (data != undefined) {
                window.location = data;          
                 }
        }
    

    我的搜索成功

    【讨论】:

      猜你喜欢
      • 2016-05-04
      • 1970-01-01
      • 2017-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-26
      • 2013-11-16
      相关资源
      最近更新 更多