2014-02-12 6 views
0

Я использую ASP.NET MVC C#. У меня есть мнение, со следующей строки кода:return View() не работает внутри контроллера

@using (Html.BeginForm("TastingParty", "Contact")) 

Я подаю на другой контроллер и действие, чем текущая страница на так что я должен был добавить пользовательский контроллер и действие в этой строке. Теперь он добирается до моего контроллера и в нижней части метода, который я называю «return View()»; поэтому он снова отобразит ту же страницу. Но он ищет этот вид в контроллере Contact, потому что именно там я его отправил.

Как вернуть исходный вид, из которого он пришел? Надеюсь, что все имеет смысл.

+1

вам нужно «вернуть RedirectToAction (...)» и поставить пару Action/Controller – Tallmaris

ответ

2
return RedirectToAction(Action,Controler) 

Вы ищете это?

+0

просто, спасибо – dmikester1

+0

Должны ли отображаться мои ошибки проверки, например, «return View()»? Потому что я не вижу никаких ошибок, когда он возвращается. – dmikester1

+0

Так кажется, что этот метод теряет мой ModelState. Хмммм ... Я читаю это: http://stackoverflow.com/questions/4642845/asp-net-mvc-how-to-preserve-modelstate-errors-across-redirecttoaction – dmikester1

1

Вы можете использовать return RedirectToAction(...

http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.redirecttoaction(v=vs.118).aspx

Или, если вы хотите, чтобы иметь возможность повторно использовать вид на разных контроллерах, вы можете поместить его в папку Views\Shared.

В последнем случае у вас есть возможность вернуть опубликованную модель обратно в это представление.

public ActionResult YourAction(YourViewModel postedModel) { 

    // do something 

    return View(postedModel); 
} 

И опять же, если вы хотите, чтобы это было общее мнение, вы можете поместить его под Views\Shared\YourAction.cshtml.

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