2010-07-22 89 views
0

任何人都可以告訴我幫助我理解MVC 2中包含的新CRUD腳手架嗎?Asp.net MVC 2:瞭解CRUD,特定操作創建(有2個)?

讓我解釋一下,比如下面你有2個創建操作...

現在我相信,如果我有形式「發佈到自己」,那麼第二個與屬性POST執行 - 這是正確的?所以在一個視圖中的一種形式是,當提交提交給自己時,但是何時會調用標準的Create,即在開始時具有GET註釋的1。

我明白,默認操作是索引因此,這通常會在我的頁面顯示時調用,但我似乎無法找到關於創建操作的任何信息。我認爲它是一個魔術詞,因此它需要被稱爲創建?

// 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(); 
     } 
    } 
+0

索引是唯一的默認操作,因爲在大多數情況下,路由的設置方式如此。您可以創建一個創建默認操作的路由。 – Ahmad 2010-07-22 17:09:49

+0

感謝大家的幫助...現在更清晰 – 2010-07-22 20:30:00

回答

3

Create()(無屬性)在頁面首次加載時被調用。即。將空格式顯示給用戶

Create(FormCollection)AcceptVerbs屬性)在表單提交數據時調用。

兩者都可以使用相同的ASPX作爲視圖。

+0

嗨,但我認爲索引是在頁面首次加載時調用的,這是控制器的默認操作? ... – 2010-07-22 16:06:53

+2

在默認配置中,當URL中沒有操作規範(即'/ Customer')時調用'Index'。樣本中的第一個'Create'方法在最初調用'/ Customer/Create'時調用(即HTTP GET),而當數據從表單發佈時調用第二個'Create'(即HTTP POST) – 2010-07-22 16:19:39

+0

理查德說得很好。有一點需要注意 - 第2版與第1版沒有區別。 – mare 2010-07-22 16:33:51

1

「創建」這個名稱沒有任何魔力。創建操作的任何正常鏈接(例如,由Url.Action("Create")調用創建的鏈接)都會導致對非POST(GET)版本的頁面請求。使用method =「POST」的頁面的GET版本上的表單將導致POST版本被調用。您可以對其他名稱的操作使用相同的模式。