Asp.net mvc asp.net MVC 2如何执行这些操作?

Asp.net mvc asp.net MVC 2如何执行这些操作?,asp.net-mvc,Asp.net Mvc,我有sql server数据库,即表用户。我想通过asp.net MVC应用程序创建用户。我有一个基于asp.net MVC 2版本的应用程序。我将控制器添加为UsersController,也将视图创建为Users。具有创建、索引、删除等方法的UsersController。。 要获取UI输入,我必须做什么?如果生成的Create方法采用参数FormCollection(重载),那么如何执行该方法?这里有一种方法。在表单中添加提交按钮: <button type="submit" val

我有sql server数据库,即表用户。我想通过asp.net MVC应用程序创建用户。我有一个基于asp.net MVC 2版本的应用程序。我将控制器添加为UsersController,也将视图创建为Users。具有创建、索引、删除等方法的UsersController。。
要获取UI输入,我必须做什么?如果生成的Create方法采用参数FormCollection(重载),那么如何执行该方法?

这里有一种方法。在表单中添加提交按钮:

<button type="submit" value="Submit">ButtonText</button>
属性(HttpGetAttribute和HttpPostAttribute)让框架知道应该为get请求调用第一个方法,为post请求调用第二个方法

现在,获取FormCollection中的值非常简单:

var value = collection["key"];

您不直接调用
Create
方法。
Create
视图将向服务器提交
HttpPost
,ASP.NET将请求转发到具有
HttpPost
属性的
Create
方法

这里是到的链接,该网站上还有大量其他教程等(www.asp.net/mvc)

[HttpPost]
public ActionResult Create(FormCollection abc)

将在您提交表单时调用。MVC操作将根据您的路线注册运行

例如:

routes.MapRoute(
   "Default", // Route name
   "{controller}/{action}/{id}", // URL with parameters
   new {controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults
);
对于MVC附带的默认路由,如果您在浏览器中访问/Users/Create/,MVC会将其路由到用户控制器,然后运行
Create()
操作。只有在执行类似于/Users/Edit/1234的操作时,才会考虑Id

您的操作可以使用
[HttpPost]
属性来指示它从传入的Http POST接收数据。然后,您可以对数据执行任何操作(持久化到数据库等):


复习路由和控制器的概念(根据ASP.NETMVC)需要一本教程。你为什么不试着通过考试呢?Nerddiner是一个开源的ASP.NET MVC项目,您可以通过它来了解ASP.NET MVC的概念和实现细节。

HttpGet
属性可以很容易地忽略,如果只有两个操作具有相同的名称(因此只有一个操作具有操作选择器属性,即
HttpPost
)。但是,如果您有多个具有各种操作选择器的操作(例如,两个用于匿名用户,两个用于已验证用户),那么所有这些操作都应该具有这些属性。
[HttpPost]
public ActionResult Create(FormCollection abc)
routes.MapRoute(
   "Default", // Route name
   "{controller}/{action}/{id}", // URL with parameters
   new {controller = "Home", action = "Index", id = UrlParameter.Optional} // Parameter defaults
);
[HttpPost]
public ActionResult Create(FormCollection form)
{
    /* do something to form values */
}