Вам нужно обернуть текстовые поля в форму:
<% using (Html.BeginForm()) { %>
<% foreach (var item in Model.stats)
{%>
<label style="style="float:left;"><%= item.Stat_Caption %></label>
<%=Html.TextBox(item.Stat_Caption,item.Stat_Value) %>
<%} %>
<input type="submit" value="Save" class="button" /></td>
<% } %>
Когда вы нажимаете кнопку отправки, он выполняет стандартный POST с парами ключ / значение следующим образом:
Box1 : Hello
Box2 : World
На стороне контроллера вам нужен метод, который получает запрос POST:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(Entity entity)
{
// code goes here
}
где Entity
- ваш объект модели данных. Связыватель модели MVC по умолчанию использует отражение для заполнения полей вашей сущности, поэтому, если сущность была такой:
public class Entity()
{
public string Box1 { get; set; }
public string Box2 { get; set; }
}
Тогда для Box1 и Box2 будут установлены значения, отправленные в запросе POST.
Если у вас нет сущности, вы можете использовать это:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Create(FormCollection collection)
{
// code goes here
}
где collection
- словарь объектов. Недостатком использования этого словаря является то, что это словарь типов Object
, поэтому вам придется захватывать данные и приводить их к тому типу, который должен быть.