如何通过在特定控制器和操作上使用 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 调用来重定向用户 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 AJAX 调用使用 jQuery 渲染 HTML

如何使用PHP通过ajax在特定服务器*文件夹上保存文件。不通过浏览器下载

ASP.NET MVC:如何防止会话锁定?

如何使用 jquery ajax 调用来调用 php 函数? [复制]

C#实现简易ajax调用后台方法

如何把jquery放在laravel控制器上?