如何通过在特定控制器和操作上使用 Ajax 调用来重定向用户 [重复]
Posted
技术标签:
【中文标题】如何通过在特定控制器和操作上使用 Ajax 调用来重定向用户 [重复]【英文标题】:How to redirect the user by using Ajax call on specific Controller and action [duplicate] 【发布时间】:2016-09-13 08:31:03 【问题描述】:下面是我的 javascript 函数,它会在点击更新按钮时进行更新。
function UpdateData()
var obj =
"testData": $("#hdn_EditdsVal").val(),
"feature": $("#hdn_EditdsVal").val()
;
$.ajax(
url: '@(Url.Action("UpdatePlanFeatVal", "SuperAdmin"))',
type: "POST",
dataType: "json",
data: JSON.stringify(obj),
contentType: "application/json",
success: function (result)
// want to redirect the user using ControllerName/ActionMethod
,
error: function (err)
);
还有我的控制器
public ActionResult UpdatePlanFeatVal(string testData,string feature)
var cmd = (object)null;
testData = testData.Trim();
string[] words = testData.Split(':');
XDocument _xdoc = new XDocument(new XElement("Pricing"));
foreach (string word in words)
if (!string.IsNullOrEmpty(word))
string[] wor = word.Split('_');
_xdoc.Root.Add(
new XElement("row",
new XElement("FeatureId", wor[1]),
new XElement("PlanId", wor[2]),
new XElement("Unit", wor[3])
));
using (StoredProcedureContext sc = new StoredProcedureContext())
cmd = sc.EditPricing(_xdoc);
return View("ManageSubscriptionPlan");
它没有将我重定向到那个视图,也做了一些谷歌,发现我必须在 Javascript 本身中使用这个东西并使用 OnSuccess
选项调用 url。知道如何在我的场景中使用 javascript 进行回发。
并且也不要浏览代码,因为它在发布之前已被修改。我只想在更新后进行重定向。
【问题讨论】:
ajax 的全部目的是保持在同一页面上,当您想要重定向时使用 ajax 发布数据是没有意义的。进行正常的提交并为自己节省一些代码并提高性能。 【参考方案1】:请在 Ajax 成功后更新您的 javascript 函数使用。
function UpdateData()
var testData= $("#hdn_EditdsVal").val();
var feature= $("#hdn_EditdsVal").val();
;
$.ajax(
url: '@(Url.Action("UpdatePlanFeatVal", "SuperAdmin"))',
type: "POST",
dataType: "json",
data: testData: testData, feature: feature ,
contentType: "application/json",
success: function (result)
window.location.href = '@Url.Action("Action", "Controller")';
,
error: function (err)
);
【讨论】:
感谢您的输入。我得到了答案,但由于没有其他选择,我仍将其标记为答案:P以上是关于如何通过在特定控制器和操作上使用 Ajax 调用来重定向用户 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用PHP通过ajax在特定服务器*文件夹上保存文件。不通过浏览器下载