2016-03-31 4 views
0

ボタンをクリックして、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; 
} 

対処方法:MyPartialViewが呼び出されると

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

、それは子供の要求を実行エラーなどのエラーを投げています。

私に解決策を教えてください。

+0

? – SeM

+0

テストするには、私はfalseとして渡しています。 QAが真であればモーダルポップアップを開き、そうでなければリターン部分ビューを実行します。部分的なビューが呼び出されているが、それをリダイレクトせず、子の要求を実行中のエラーとしてエラーをスローしています。私はJavaScript関数を変更する必要がありますか? –

+0

はまた、このクリックイベントも... –

答えて

0

HTMLを文字列に変換し、これをjsonとして渡します。あなた `isQA`が真取得

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

コードを表示できますか? –