2010-09-07 60 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的概念和实现细节。

相关问题