2016-04-13 14 views
0

Ich möchte auch view1 und view2 methods.aber es funktioniert nicht.die Methode "SubmitMyData" funktioniert ordnungsgemäß und die Ansichten für meine Ajax Anruf zurück. Nach dem Ausführen erwartete ich die Ausführung (zum Beispiel) Ansicht2. In diesem Beispiel muss ich view2Ich kann die Ansicht nicht sehen 2

[System.Web.Mvc.Route("Home/SubmitMyData/")] 
[System.Web.Http.HttpPost] 
public ActionResult SubmitMyData([FromBody]MyParamModel mydata) 
{    
    if (mydata.Prop1.Equals("1")) 
    { 
     view1(); 
     return View("view1"); 
    } 
    else 
    { 
     view2(); 
     return View("view2"); 
    }    
} 

hier die Leichen von Ansichten, die Verfahren

public ActionResult view1() 
{ 
    ViewBag.Title = "view1"; 
    return View(); 
} 

public ActionResult view2() 
{ 
    ViewBag.Title = "view2"; 
    return View(); 
} 

und hier ist meine Ajax-Aufruf (falls notwendig, um zu sehen)

$('#Buttonv').click(function() { 
    var myData = {Prop1: "10", Prop2: ""}; 
    $.ajax({ 
     type: 'POST', 
     data: myData, 
     url: '/Home/SubmitMyData',   
    }) 
    .success(function (data) { 
     $('#lblmessage').html(data); 
    }) 
    .error(function (xhr, ajaxoption, thrownError) { 
     $('#lblmessage').html("moshkelo" + xhr + "ajaxoption= " + ajaxoption + " throwerror=" + thrownError); 
    }) 
    //return false; 
}); 
+1

mögen, was der Zweck der view1 ist() und view2() -Methode ?, das scheint, Sie setzen nur ViewBag Eigenschaften in sie und die Rück Anweisung innerhalb view1() und die Methode view2() führt zu nicht erreichbarem Code für die Rückgabeansicht ("view1") in der SubmitMyData-Methode. –

+0

warum nicht?!. Es funktioniert, wenn ich home/view1 oder home/view2 in url eingeben. Ich möchte nur diese Methoden in "SubmitMyData" -Methode – amin

Antwort

0

Ersetzen Sie den Code sehen view2(); mit return RedirectToAction("view2");

Sie müssen zu einer Aktion als nur e umleiten wie eine Methode.

So würde Ihr Code unter

public ActionResult SubmitMyData([FromBody]MyParamModel mydata) 
{    
    if (mydata.Prop1.Equals("1")) 
    { 
     return RedirectToAction("view1"); 
     //return View("view1"); // not required 
    } 
    else 
    { 
     return RedirectToAction("view2"); 
     // return View("view2"); // not required 
    }    
} 
+0

aufrufen, aber sein Ergebnis ist das gleiche.ich bekomme das Ergebnis in meiner #lblmessage in Ajax Aufruf !!. Ich möchte die Ansicht2 (getrennte Seite) sehen. – amin

+0

Wenn Sie Ajax anrufen, bleiben Sie auf der gleichen Seite @amin –

+0

ja. aber was soll ich tun? Gibt es irgendwelche Möglichkeiten? – amin

Verwandte Themen