2016-03-31 4 views
0

Auf Knopfdruck habe ich eine js-Funktion aufgerufen, die als Aktionsmethode aufruft. Aber wenn json Ergebnis ist 0 (kein Fehler), möchte ich auf Teilansicht umleiten. JS Funktion:Teilansicht von Ajax zurückrufen

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; 
} 

Aktion Methode in der Steuerung:

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

Wenn MyPartialView aufgerufen wird, wird es Fehler als Fehler bei der Ausführung Kind Anfrage zu werfen.

Bitte geben Sie mir die Lösung.

+0

Wann wird Ihr 'isQA' wahr? – SeM

+0

Um zu testen übergebe ich es als falsch. Wenn QA wahr ist, dann möchte ich ein Modal-Popup öffnen, ansonsten führe die Teilansicht zurück. Teilansicht wird aufgerufen, aber es wird nicht umgeleitet und es wird ein Fehler ausgegeben, wenn die untergeordnete Anfrage ausgeführt wird. Muss ich die JavaScript-Funktion ändern? –

+0

Und das Click-Ereignis gibt es auch in einer Teilansicht .. –

Antwort

0

Konvertieren Sie Html in String, dann übergeben Sie dies als 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 Fehler geben .. Und ich war return Json versucht (neu { status = 10, status = "Die Person hinzugefügt!", personHtml = RenderPartialViewToString ("LoadJob", treeView) }); Auch wenn Fehler als Error ausgeführt wird, der untergeordnete Anfrage ausführt, und die Antwort als Warnmeldung angezeigt wird. –

+0

Und dieses Klickereignis existiert auch in einer Teilansicht. –

+0

Kann ich Sie sehen Code anzeigen? –

Verwandte Themen