2013-10-08 7 views
2

Я работаю над школьным проектом, и мне нужна помощь. Я создал форму, и я хочу получить от нее представленные значения. Возможно ли это сделать без использования JavaScript? И в этом случае, как мне это сделать?Как получить значения из Html.TextBox MVC 2 asp.net C#?

Форма:

<div id="secondRowInputBox"> 
     <% using (Html.BeginForm("Index","Home",FormMethod.Post)) 
     {%> 
      <%= Html.TextBox("Id")%> <br /> 
      <%= Html.TextBox("CustomerCode") %><br /> 
      <%= Html.TextBox("Amount") %><br /> 
      <input type="submit" value="Submit customer data" /> 
     <%} %> 
    </div> 

ответ

1

Вы уже сделали половину работы, теперь в домашнем контроллере сделать ActionResult

[HttpPost] 
public ActionResult Index(int id, string customerCode, int amount) 
{ 
// work here. 
} 

метод форма пост будет вызывать этот метод, как вы определили его в начинаются параметров формы.

Это будет лучше, если вы используете модель для передачи значений и использовать его в целях для элементов формы

[HttpPost] 
public ActionResult Index(ModelName modelinstance) 
{ 
// work here. 
} 

Образец loginModel

public class LoginModel 
{ 
    [Required] 
    [Display(Name = "Username:")] 
    public String UserName { get; set; } 

    [Required] 
    [Display(Name = "Password:")] 
    [DataType(DataType.Password)] 
    public String Password { get; set; } 
} 

теперь, если использует эту регистрационную модель в виде

то для контроллера действие, модельное состояние - это просто объект класса модели

[HttpPost] 
public ActionResult Index(LoginModel loginDetails) 
{ 
// work here. 
} 

Если у вас много переменных в форме, то наличие модели помогает, так как вам не нужно писать для всех свойств.

+0

Как использовать модель для получения значений? – Mangs

+0

@JohanMagnusson просмотреть обновленный ответ – Rex

2

Просто создайте HttpPost действие в контроллере принимать значения формы в качестве параметров:

[HttpPost] 
public ActionResult Index(int id, string customerCode, int amount) 
{ 
    // You can change the type of the parameters according to the input in the form. 
    // Process data.  
} 

Вы можете посмотреть в model binding. Это позволяет создавать сильно типизированные представления и избавляет вас от необходимости создавать действия с десятками параметров.

0

Henk Mollema ответ хороший. Здесь можно сказать что-то еще.

Html.TextBox будет генерировать html, как показано ниже, есть атрибут имени.

<input id="CustomerCode" name="CustomerCode" type="text"> 

Когда вы отправите форму, все значения полей ввода могут быть получить от Request.Form по имени атрибута в качестве ключа Request.Form["CustomerCode"] и ASP.NET MVC сделал некоторую магию для нас, так что он может просто пойти в параметр метода действия.

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

  • Нет связанных вопросов^_^