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