2014-01-20 5 views
0

У меня есть сильный типизированный вид из класса модели. Я хотел бы добавить там текстовое поле, где я могу передать число. Это число должно было сообщить контроллеру, как часто объект должен быть добавлен в базу данных. Но в представлении я только кнопку отправки, и моя функция контроллер обрабатывает эту PostbackКак я могу обработать поданную форму?

' POST: /Adminpanel/AddHardware ' 
<Authorize()> 
<HttpPost> 
Function AddHardware(ByVal hw As Hardware) As ActionResult 
    If ModelState.IsValid Then 
     db.Hardware.Add(hw) 
     db.SaveChanges() 
     Response.Redirect("~/Adminpanel/Hardware") 
    Else 
     Response.Redirect("~/Adminpanel/Hardware") 
    End If 
End Function 

следует выглядеть следующим образом:

' POST: /Adminpanel/AddHardware ' 
<Authorize()> 
<HttpPost> 
Function AddHardware(ByVal hw As Hardware, ByVal amount As Integer) As ActionResult 
    If ModelState.IsValid Then 
     For i As Integer = 0 To amount 
      db.Hardware.Add(hw) 
      db.SaveChanges() 
     Next 
     Response.Redirect("~/Adminpanel/Hardware") 
    Else 
     Response.Redirect("~/Adminpanel/Hardware") 
    End If 
End Function 

Как я могу добавить это текстовое поле, на мой взгляд и передать значение для контроллера?

ответ

0

Добавьте элемент ввода в свой вид (внутри вашей формы) и укажите его имя = "сумма". И когда будет отправлена ​​форма, MVC автоматически привяжет значение из представления к вашему контроллеру. Вы можете получить доступ к значению amount в контроллере напрямую.

ПРИМЕЧАНИЕ. Связывание зависит от имени элемента. Если ваш тег ввода имеет имя amount и в параметрах вашего контроллера, если у вас есть параметр amount, MVC привяжет значение к этому параметру. Поэтому всегда убедитесь, что ваши element name и parameter name одинаковы.

+0

спасибо, он работает! – circa94

+0

Нет проблем, но убедитесь, что вы используете модели для отправки и получения значений. Если необходимо передать только один или два нечетных параметра, вы можете использовать вышеупомянутый подход, но это плохая практика, если вы имеете дело с более чем двумя параметрами. Используйте модели, которые поддерживают ваше программирование в чистоте и порядке. –

0

Вы должны быть в состоянии просто добавить <input ... /> в форму с идентификатором из суммы и MVC будет заботиться о связывании значения для вашего параметра amount.

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