asp.net MVC 2如何执行Actions?

时间:2010-09-07 06:19:14

标签: asp.net-mvc

我有sql server数据库,即拥有表User。我想通过asp.net MVC应用程序创建用户。我有基于asp.net MVC 2版本的应用程序。我已将控制器添加为UsersController,还将视图创建为Users。 UsersController具有方法Create,Index,delete..so on .. 要获取UI输入我必须做的事情?如果生成Create方法作为参数FormCollection(重载),那么如何执行此方法?

4 个答案:

答案 0 :(得分:1)

根据您的路线注册运行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会将其路由到Users控制器,然后运行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的概念和实现细节。

答案 1 :(得分:0)

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

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

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

创建Create方法的重载:

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

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

属性(HttpGetAttribute和HttpPostAttribute)让框架知道应该为get请求调用第一个方法,为post请求调用第二个方法。

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

var value = collection["key"];

答案 2 :(得分:0)

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

这是execution process in MVC2的链接。该网站上还有很多其他教程等(www.asp.net/mvc)

答案 3 :(得分:0)

[HttpPost]
public ActionResult Create(FormCollection abc)
提交表单时将会调用