MVC工作流程问题

时间:2010-10-13 09:20:38

标签: asp.net-mvc

我正在构建一个电子商务应用程序,我有一个负责购买过程的控制器。

我在创建这些控制器中的方法时注意到的是,每个方法都负责处理来自先前视图的输入。

所以我有一个Quote方法返回一个Quote视图,用户正在与视图进行交互,其表单正在发布到Payment方法。这意味着Payment方法实际上是在返回付款视图之前处理报价页面中的信息。 “付款”视图过帐到“已完成”方法(在返回显示购买完成的页面之前正在处理付款信息)。

来自webforms背景,每个方法实际上处理来自上一页的信息似乎很奇怪。因此,付款方式不是“控制”付款,它实际上是“控制”报价页面信息,然后返回付款视图。

我是以错误的方式看待这个吗?

2 个答案:

答案 0 :(得分:1)

不是Controller方法正在处理前一个视图,而是告诉您的视图将信息传递给该控制器。没有必要将View的信息传递给另一个Controller方法。这取决于您如何编码控制器 - 视图关系。

例如,您的控制器中有一个报价视图和一个报价方法。您可以在控制器中使用两种方法,一种方法负责显示信息,另一种方法处理从视图传递的信息。

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" />
<% } %>

我将以这种方式对我的控制器进行编码,这样我就不会对处理我的View的控制器方法感到困惑。当我在Quote中提交表单时,它会将信息提交给接受httpPost的Quote方法。虽然Tassadaque这里所说的是适合你的情况。

答案 1 :(得分:0)