Asp.net MVC 2:了解CRUD,特定动作创建(有2个)?

时间:2010-07-22 15:53:13

标签: asp.net asp.net-mvc asp.net-mvc-2

有谁能告诉我帮助我理解MVC 2中包含的新CRUD脚手架?

让我解释一下,例如下面你有2个创建动作...

现在我假设如果我有“发布到自己”的形式,那么执行属性POST的第二个 - 这是正确的吗?所以视图中的一个表单,当Submitted提交给自己时??,但是什么时候会调用标准的Create,即在开始时有// GET注释的1。

我确实理解默认操作是索引,因此当我的页面显示时通常会调用它,但我似乎无法找到有关创建操作的任何信息。我认为它是一个神奇的词,因此它需要被称为Create ???

    // GET: /Customer/Create

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

    //
    // POST: /Customer/Create

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Create(FormCollection collection)
    {
        try
        {
            // TODO: Add insert logic here

            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }

2 个答案:

答案 0 :(得分:3)

首次加载页面时,会调用

Create()(无属性)。即。空表单将显示给用户

使用数据提交表单时,会调用

Create(FormCollection)AcceptVerbs属性)。

两者都可以使用相同的ASPX作为视图。

答案 1 :(得分:1)

“创造”这个名字并没有什么神奇之处。创建操作的任何常规链接(例如,由Url.Action("Create")调用创建的链接)将导致对非POST(GET)版本的页面请求。使用method =“POST”的页面的GET版本上的表单将导致调用POST版本。您可以将此相同模式用于其他名称的操作。