2010-10-13 2 views
0

Я создаю приложение для электронной коммерции, и у меня есть контроллер, который отвечает за процесс покупки.MVC рабочий вопрос вопрос

Что я заметил при создании методов в этих контроллерах, так это то, что каждый метод отвечает за обработку ввода из предыдущего представления.

У меня есть метод Quote, который возвращает вид котировки, и пользователь взаимодействует с представлением, а его форма отправляется в метод оплаты. Это означает, что метод оплаты фактически обрабатывает информацию со страницы котировки перед возвратом платежного представления. В представлении «Оплата» отправляется метод «Завершено» (который обрабатывает информацию о платеже, прежде чем возвращать страницу, показывающую, что покупка завершена).

Исходя из фона webforms, кажется странным, что каждый метод фактически обрабатывает информацию с предыдущей страницы. Таким образом, метод оплаты не «контролирует» платеж, а фактически «контролирует» информацию о странице запроса, прежде чем возвращать платежное представление.

Я смотрю на это не так?

ответ

1

Его не то, что метод контроллера обрабатывает предыдущий вид, но вместо этого, вы сообщаете ваш взгляд передать информацию в этот контроллер. Не нужно передавать информацию View другому методу контроллера. Это зависит от того, как вы кодируете отношения с контроллером.

Например, у вас в вашем контроллере имеется вид Quote Quote и Quote. У вас может быть 2 метода для Quote в вашем контроллере, один отвечает за отображение информации, а другой - для обработки информации, переданной из представления.

public ActionResult Quote() 
{ 
    return View(); 
} 

[httpPost] 
public ActionResult Quote(FormCollection quoteForm) 
{ 
    // process your Quote form 
    return RedirectToAction("Payment"); 
} 

Для моей Цитата Посмотреть

<% using(Html.BeginForm()) { %> 

    // my html form here 

    <input type="submit" text="submit" /> 
<% } %> 

Я закодировать мой контроллер таким образом, так что я не буду путать о том, что метод контроллера обрабатывает мой взгляд. Где, когда я отправлю форму в свою Цитату, она отправит информацию в метод Quote, который принимает httpPost. Хотя то, что сказал Tassadaque, рекомендуется для вашей ситуации.

+0

+1 OP должен смотреть на шаблон Post/Redirect/Get. –

+0

Thanks Matthew .. –

+0

Да, шаблон PRG выглядит так, как будто это позволит мне лучше управлять рабочим процессом, избегая проблем с дублированием представления. Спасибо Мэтью. – FloatLeft