2016-03-31 152 views
0

按钮单击我调用了一个js函数,这个js函数称为操作方法。但如果json结果是0(不是错误),我想重定向到部分视图。 JS功能:在控制器从ajax返回部分视图调用

function AssignButtonClicked(step, parent, show) { 
    alert("coming: " + step + " parent: " + parent + " show is : " + show); 

    $.ajax({ 

     type: "POST", 

     url: "/Jobs/PassInstructionTest", 

     data: "{stepGuid: '" + step + "', parentGuid: '" + parent + "'}", 

     contentType: "application/json; charset=utf-8", 

     dataType: "json", 

     success: function (response) { 

      alert("resp is : " + response); 
      if (response == '0') { 
       alert('qa called!'); 
       $("#forqa").show();     
      } 
      if (response == '1') { 

      } 
     }, 

     error: function (response) { 
      alert(response.responseText + " error for fail"); 
     }, 

    }); 
    return false; 
} 

动作方法:

public ActionResult PassInstructionTest(Guid stepGuid, Guid parentGuid, string show) 
{ 
    bool isQA = false; 
    if (!isQA) 
    { 
    return Json(0, JsonRequestBehavior.AllowGet); 
    } 
    else 
    { 
    return PartialView("MyPartialView"); 
    } 
} 

MyPartialView当被调用时,它被投掷误差作为执行错误子请求。

请为我提供解决方案。

+0

当你的'isQA'成立时? – SeM

+0

为了测试我传递它为false。如果QA为真,那么我想打开一个Modal弹出窗口,否则执行返回的部分视图。部分视图正在调用,但它不重定向它,并抛出错误作为执行子请求的错误。我是否需要更改JavaScript功能? –

+0

而这个click事件也存在于局部视图.. –

回答

0

将Html转换为字符串,然后将其作为json传递。

public virtual string RenderPartialViewToString(string viewName, object model) 
    { 
     //Original source code: http://craftycodeblog.com/2010/05/15/asp-net-mvc-render-partial-view-to-string/ 
     if (string.IsNullOrEmpty(viewName)) 
      viewName = this.ControllerContext.RouteData.GetRequiredString("action"); 

     this.ViewData.Model = model; 

     using (var sw = new StringWriter()) 
     { 
      ViewEngineResult viewResult = System.Web.Mvc.ViewEngines.Engines.FindPartialView(this.ControllerContext, viewName); 


      var viewContext = new ViewContext(this.ControllerContext, viewResult.View, this.ViewData, this.TempData, sw); 
      viewResult.View.Render(viewContext, sw); 

      return sw.GetStringBuilder().ToString(); 
     } 
    } 



    public ActionResult PassInstructionTest(Guid stepGuid, Guid parentGuid,string show) 
    { 
    bool isQA = false; 
    if (!isQA) 
    { 
     return Json(0, JsonRequestBehavior.AllowGet); 
    } 
    else 
    { 
     return update_section = new 
      { 
      ShippingMethodUpdateHtml = this.RenderPartialViewToString("MyPartialView", null) 
      }, 
    } 
    } 
+0

update_section是给错误..我已尝试 返回JSON(新 { 的StatusCode = 10, statusMessage =“此人已被添加!”, personH​​tml = RenderPartialViewToString(“LoadJob”,treeView) }); 即使抛出错误为执行子请求的错误,并且响应即将作为警报显示。 –

+0

这个点击事件也存在于局部视图中。 –

+0

我可以看到你吗?查看代码? –