2010-09-07 92 views
0

我有sql服務器數據庫,即有表用戶。我想通過asp.net MVC應用程序創建用戶。我有基於asp.net MVC 2版本的應用程序。我已經添加了控制器作爲UsersController,也創建視圖作爲用戶。 UsersController的方法創建,索引,刪除..在.. 採取UI輸入我必須做什麼?並且如果生成Create方法的參數爲FormCollection(overload),那麼如何執行此方法?asp.net MVC 2如何執行操作?

回答

0

以下是一種方法。添加一個提交按鈕,您的形式:

<button type="submit" value="Submit">ButtonText</button> 

<input type="submit" value="ButtonText" /> 

創建創建方法的重載:

[HttpGet] 
    public ActionResult Create() 
    { 
     ... 
    } 

    [HttpPost] 
    public ActionResult Create(FormCollection collection) 
    { 
     ... 
    } 

的屬性(HttpGetAttribute和HttpPostAttribute)讓框架知道應該爲獲取請求調用第一個方法,爲post請求調用第二個方法。

現在在的FormCollection得到的值是非常簡單的:

var value = collection["key"]; 
+0

如果只有兩個具有相同名稱的動作(因此只有一個具有動作選擇器屬性 - 即「HttpPost」),則'HttpGet'屬性可以輕鬆省略。但是你有多種動作選擇器(比如兩個用於匿名用戶,兩個用於認證),那麼他們都應該擁有這些屬性。 – 2010-09-07 10:17:27

0

你不直接調用Create方法。 Create視圖將向服務器提交一個HttpPost,ASP.NET會將該請求轉發到具有HttpPost屬性的Create方法。

這裏是對execution process in MVC2的鏈接也有很多其他教程等在該網站上(www.asp.net/mvc)當您提交

0

[HttpPost] 
public ActionResult Create(FormCollection abc) 

會叫你形成。

1

MVC操作根據您的路由註冊運行。

例如:

routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}/{id}", // URL with parameters 
    new {controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults 
); 

在自帶的MVC的默認路由的情況下,如果你訪問/用戶/新建/瀏覽器,MVC路線這給用戶控制器,然後運行Create()行動。只有在您執行/ Users/Edit/1234之類的操作時纔會考慮Id。

您的操作可以使用[HttpPost]屬性來指示它從傳入的Http POST接收數據。然後,你可以做你想要的任何數據(持久化到數據庫等):

[HttpPost] 
public ActionResult Create(FormCollection form) 
{ 
    /* do something to form values */ 
} 

去了路線和控制器的概念(如每ASP.NET MVC)將需要在自己的教程。你爲什麼不嘗試通過Nerddinner project? Nerddiner是一個開源的ASP.NET MVC項目,您可以通過它瞭解ASP.NET MVC的概念和實現細節。