2013-07-15 3 views
1

Это только моя вторая неделя на ASP.NET MVCКак передать сложные параметры в контроллер?

В основном я модель под названием T_Users, на странице просмотра я создал текстовое поле для создания новой записи в базу данных, ниже код:

<th scope="row" class="spec">Row</th> 
<th scope="col" class ="nobg">@Html.TextBoxFor(A => A.Username)</th> 
<th scope="col" class ="nobg">@Html.PasswordFor(p => p.Password)</th> 
...    

Как контроллер может получить значения? Очевидно, что pass by/xx/xx/ID не является эффективным способом.

ответ

1

Если вы разместите форму в действии, в зависимости от метода этой формы вы получите значения в коллекции. Например:

HTML

<form action="SubmitAction" method="POST"> 
    <...> 
    <th scope="row" class="spec">Row</th> 
    <th scope="col" class ="nobg">@Html.TextBoxFor(A => A.Username)</th> 
    <th scope="col" class ="nobg">@Html.PasswordFor(p => p.Password)</th> 
    <.../> 

Код За

[HttpPost] 
      public ActionResult SubmitAction(UserInfo user) 
      { 
       var value1 = user.Username; 
       var value2 = user.Password; 
       ... 

       ... return something ... 
      } 

и модели

class UserInfo 
{ 
    public string Username { get; set; } 
    public string Password{ get; set; } 
} 
+0

Это помогает! Очень маленький вопрос, в котором

, я не видел стандартную кнопку отправки из @html, какой тег я должен использовать для отправки формы? – LifeScript

+0

, где угодно внутри формы –

+0

Это работает! Спасибо за ваше быстрое решение! Я действительно ценю это! – LifeScript

0

создать класс модели для представления вашей записи:

class UserInfo 
{ 
    public string Username { get; set; } 
    public string Password{ get; set; } 
} 

Теперь создайте HttpPost действие Save, который принимает ваш класс UserInfo в качестве параметра:

[HttpPost] 
public ActionResult Save(Userinfo info) 
{ 
    //info should contain your username and password 
} 

Убедитесь, что имена свойств в классе точно соответствует имени в вашей html-форме.

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