C# MVC Jquery发布数据,从ActionResult重定向到url

C# MVC Jquery发布数据,从ActionResult重定向到url,c#,jquery,asp.net-mvc,C#,Jquery,Asp.net Mvc,我目前在mvc工作。我有一个页面上有多个按钮,这会使事情变得复杂一些。但是,我使用的按钮调用jquery函数将数据发布到控制器。这将按预期工作,数据到达操作,操作执行除重定向之外的所有预期操作 该函数将数据发布到控制器,或允许控制器查看值并建立url,然后重定向到。但是重定向不起作用,该函数按预期调用成功函数。如果我将数据返回放入警报中,则页面的代码将在警报窗口而不是url中返回 代码如下: <input type="submit" value="Assign" name="Assign

我目前在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**

    }

函数doRedirect(){
var action='@Url.action(“重定向”);
//警惕(行动);
变量opt={
类型:“POST”,
数据:{
团队:$(“#团队选项:选定”).val()
},
url:action,
成功:成功
};
ajax(opt);
}
函数重定向成功(数据){
如果(数据!=未定义){
数据;
}
}
公共操作结果重定向(字符串组)
{
变量主机名=”http://localhost/test/testpage.aspx?";
var team=“&team=“+team;
var filterUrl=团队;
返回重定向(filterUrl);**//这不起作用**
}

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

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

return Json(new { url: filterUrl });
在成功回调中,执行以下操作以重定向:

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

这就是我所做的

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;          
             }
    }

在我的搜索成功后

@RiggleBits很高兴它有所帮助,如果您只需要从操作中返回url,那么您的解决方案确实是一个更短/更简洁的解决方案。