我有一个按钮点击,它接受输入值,并重定向到另一个页面在javascript中的东西看起来像这样的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 () {
}
});`
这会调用控制器,但不会返回任何内容。我不知道我在这里做错了什么,一个有效的代码将不胜感激。
发布于 2018-05-31 19:04:04
如果它只包含重定向到页面
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);
}
https://stackoverflow.com/questions/50622602
复制相似问题