2016-04-13 4 views
0

Я хочу также вызвать view1 и view2 methods.but не работает. Метод «SubmitMyData» работает правильно и возвращает представления для моего вызова ajax. После запуска я ожидал выполнения (например,) view2. В этом примере я должен видеть VIEW2Я не вижу вид 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"); 
    }    
} 

Вот тела методов просмотров

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

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

и вот мой Аякса вызов (если это необходимо, чтобы увидеть)

$('#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

Какова цель view1() и View2() метод ?, его, кажется, вы устанавливаете только свойства ViewBag внутри них и вернуться заявление в view1() и метод view2() приведет к недостижимому коду для возврата View («view1») внутри метода SubmitMyData. –

+0

почему нет?!. он работает, если я вхожу в home/view1 или home/view2 в url. Я просто хочу вызвать эти методы в методе «SubmitMyData» – amin

ответ

0

Заменить код view2(); с return RedirectToAction("view2");

Вам необходимо перенаправить действие, а не только e выполняя его как метод.

Так что ваш код будет должен понравиться ниже

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

Но его результат тот же. Получаем результат в моем #lblmessage в ajax-вызове !!. Я хочу видеть view2 (разделенная страница). – amin

+0

Если вы используете Ajax-звонок, вы останетесь на той же странице @amin –

+0

да. но что мне делать? есть ли способы? – amin

Смежные вопросы