【问题标题】:MVC Ajax Partial Render RedirectingMVC Ajax 部分渲染重定向
【发布时间】:2012-04-13 19:31:04
【问题描述】:

我正在尝试从我的控制器重定向到不同的页面。但是,我的页面上有一个动态的部分渲染设置,它将页面的一部分渲染到特定的 div 中。

$(document).ready(function () {
   $.ajax({
      url: '<%=Url.Content("~/Area/Controller/Action")%>';
      success: function (data) {
        $("#div1").html(data);
      },
      error: function (data) {
        $("#div1").html(data.responseText);
      }
   });
});

我遇到的问题是,当我尝试从控制器重定向时,我重定向到的页面会在 div 内呈现,而不是完全重定向。

控制器:

public ActionResult Index()
{
   if (condition...) 
      return RedirectToAction("Index", "Controller", new { Area = "Area" });

   return PartialView("view", model);
}

我需要能够完全重定向到另一个页面。

【问题讨论】:

    标签: jquery ajax asp.net-mvc model-view-controller partial-views


    【解决方案1】:

    您当前要求 jQuery 使用来自控制器的 HTML 响应填充 $('#div1')。这不是你想要的。为什么您的控制器不只是发回 URL 而不是页面 HTML?

    $.ajax({
       url: '<%=Url.Content("~/Area/Controller/Action")%>';
       success: function (data) {
          window.location.href = data.url;
       },
       error: function (data) {
          $("#div1").html(data.responseText);
       }
    });
    

    您还包括一个额外的右括号,我已将其删除。

    【讨论】:

    • 这不能解决我的问题...我需要 jquery 来填充我的 div,但是在控制器中的一个条件之后我希望它 INSTEAD 重定向到另一个控制器/动作...我已经更新了问题提供有关控制器的更多信息。
    【解决方案2】:

    只是试图破解你的逻辑以使其工作。

    public ActionResult Index()
    {
       if (condition...) 
          return new {Status = 1, Content = <your URL to Redirect to>};
    
       return new {Status = 2, Content = PartialView("view", model)};
    }
    
    
    
    $(document).ready(function () {
       $.ajax({
          url: '<%=Url.Content("~/Area/Controller/Action")%>';
          success: function (data) {
            if(data.d.Status = 1)
              {
                window.location.href = data.d.Content;  
              }
            else
              {
                $("#div1").html(data.d.Content);
              }            
          },
          error: function (data) {
            $("#div1").html(data.responseText);
          }
       });
    });
    

    注意:我没有测试过这个。您可能需要使用它才能使其正常工作。此外,您可能需要将 Index 的返回类型更改为“object”。

    请告诉我结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-07
      • 1970-01-01
      • 2011-06-18
      • 2012-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-02
      相关资源
      最近更新 更多