2010-09-07 4 views
0

У меня есть база данных sql-сервера, у которой есть таблица User. Я хочу создать пользователя через приложение MVC asp.net. У меня есть приложение, основанное на версии asp.net MVC 2. Я добавил контроллер как UserController, также создает представление как Пользователи. UserController, имеющий методы Create, Index, delete..so on .. Чтобы использовать пользовательские интерфейсы, что мне нужно делать? и если генерирует метод Create как принимающий параметры FormCollection (перегрузки), то как выполнить этот метод?Как asp.net MVC 2 выполняет действия?

ответ

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) пусть рамки знают первый метод должен быть вызван для запроса получения, а второй - для запроса на отправку.

Теперь получать значения в FormCollection довольно прямо вперед:

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

Атрибут HttpGet может быть легко пропущен, если есть только два действия с одним и тем же именем (следовательно, только один из них имеет атрибут селектора действий, а именно «HttpPost»).Но у вас есть несколько действий с различными селекторами действий (например, два для анонимных пользователей и два для проверки подлинности), тогда все они должны иметь эти атрибуты на них. –

0

Вы не вызываете метод Create непосредственно. Create View отправит HttpPost на сервер, а ASP.NET отправит запрос на метод Create, который имеет атрибут HttpPost.

Вот ссылка на 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, если доступ к/Users/Создать/в браузере, MVC маршрутов это в контроллер Users, а затем запускает Create() действие. Идентификатор будет учитываться, только если вы сделаете что-то вроде/Users/Edit/1234.

Ваши действия могут использовать атрибут [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.

Смежные вопросы