2016-03-31 207 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

我可以看到你嗎?查看代碼? –