Javascript 如何在MVC中使用ajax重定向
我点击按钮,它获取输入值并重定向到javascript中的另一个页面,该页面类似于下面的Javascript 如何在MVC中使用ajax重定向,javascript,ajax,model-view-controller,Javascript,Ajax,Model View Controller,我点击按钮,它获取输入值并重定向到javascript中的另一个页面,该页面类似于下面的window.location=“Action Param1=value1&Param2=Value2”。但是该方法使用了我想要避免的查询字符串。 所以我想到了使用ajax ` $.ajax({ type: "POST", url: "/MyController/MyAction", data: '{Param1:"value1",
window.location=“Action Param1=value1&Param2=Value2”
。但是该方法使用了我想要避免的查询字符串。
所以我想到了使用ajax
` $.ajax({
type: "POST",
url: "/MyController/MyAction",
data: '{Param1:"value1",Param2:"value2"}',
contentType: "application/json,charset=utf-8",
dataType: "json",
success: function () {
}
});`
这会调用控制器,但不会返回任何内容。
我不知道我在这里做错了什么,一个工作代码将不胜感激。如果它只包括重定向到页面
return JavaScript("window.location = 'http:yourlink'");
这是最好的选择,但您希望传递数据,所以请按如下操作
function redi() {
var date = new Date();
var link = '@Url.Action("ActionMethod", "Home")'; var args = {
param1: date.toISOString(),
param2: date.toISOString(),
param3: 'yourdata'
};
$.ajax({
type: "GET",
url: link,
data: args,
dataType: "json",
success: function (data) {
window.location.href = data.redirecturl;
},
error: function (httpRequest, textStatus, errorThrown) {
alert("Error: " + textStatus + " " + errorThrown + " " + httpRequest);
}
});
}
控制器:
[HttpGet]
public ActionResult ActionMethod(DateTime param1, DateTime param2, string param3)
{
return Json(new { redirecturl = "http:yourlink" }, JsonRequestBehavior.AllowGet);
}
可能重复:您可以使用数据填充表单,并将表单的
action
属性设置为要重定向到的页面。否则,只需使用Ajax发布,然后在成功处理程序window.location.href=“the other url”
中,Ajax的全部要点就是保持在同一页面上。如果要重定向,请不要使用ajax!只需进行一次正常的提交,并保存自己编写的无意义脚本