2010-02-07 3 views
1

У меня есть 2 представления для операции ввода в моем приложении.asp.net mvc установленное действие явно

Первый вид (позволяет назвать его view1) представляет форму. На основе формы выполняются некоторые операции с базой данных, а второе представление (View2) возвращается с некоторыми другими данными из базы данных в качестве модели.

контроллер код действия:

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult View1(FormCollection fc) 
{ 
    //database ops to fill vm properties  
    View2ViewModel vm=new View2ViewModel(); 

    return View("View2", vm); 
} 

Теперь, так как я вернуть новый вид, а не действие перенаправления URL по-прежнему http://www.url.com/View1, но все работает, как предполагается.

Проблема:

Когда я отправить форму в View2 он вызывает метод действия view1, а не метод действия View2. Вероятно, потому что url по-прежнему View1.

Что я могу сделать, чтобы называть действия VIEW2

+0

** Цепочки действий ASP.NET MVC **
http://jwbs-blog.blogspot.com/2009/08/chaining-aspnet-mvc-actions.html –

ответ

0

Вы можете быть в любом представлении вы хотите и отправить форму к действию любого контроллера из вашего приложения, Потому что вы можете указать, что

<% using (Html.BeginForm("ThAction", "Controller")) 
    { %> 

    Enter your name: <%= Html.TextBox("name") %> 
    <input type="submit" value="Submit" /> 

<% } %> 
1

Ваш методы контроллера должны выглядеть примерно так:

[AcceptVerbs(HttpVerbs.Get)] 
public ActionResult View1(int id) 
{ 
    //database ops to fill vm properties  
    View1ViewModel vm=new View1ViewModel(id); 

    return View("View1", vm); 
} 

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult View1(FormCollection fc) 
{ 
    // Code here to do something with FormCollection, and get id for 
    // View2 database lookup 

    return RedirectToAction("View2", id); 
} 

[AcceptVerbs(HttpVerbs.Get)] 
public ActionResult View2(int id) 
{ 
    // Do something with FormCollection 

    return View("View2", vm); 
} 

[AcceptVerbs(HttpVerbs.Post)] 
public ActionResult View2(int id) 
{ 
    // Do something with FormCollection 

    return RedirectToAction("View3", id); 
} 

... и так далее.

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