Я работаю над проектом MVC 2, и у меня есть модель, которая выглядит следующим образом:
public string AccountNumber { get; set; }
public IList<Equipment> ShippedEquipmentList { get; set; }
и представление, в котором есть кнопка для добавления нового элемента оборудования. Нажатие кнопки динамически добавляет новые текстовые поля в представление для указания другого элемента оборудования. Частичное представление, которое это представляет, похоже на это:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<RmaMVC.Models.Entities.Equipment>" %>
<div class="editorRow">
Item: <%: Html.TextBoxFor(x => x.ItemID); %>
Value: <% Html.TextBoxFor(x => x.Description); %>
</div>
Мой вопрос: как мне связать эти данные с моделью? Когда контроллер вызывается, ShippedEquipmentList возвращается как ноль.
Редактировать: вот что у меня есть. Моя модель выглядит так:
public string AccountNumber { get; set; }
public IList<Equipment> ShippedEquipmentList { get; set; }
FormInputs()
{
ShippedEquipmentList = new List<Equipment>();
// adding a single blank piece of equipment so that the length isn't 0
Equipment blank = new Equipment();
ShippedEquipmentList.Add(blank);
}
Мой основной вид таков:
<% Html.BeginForm(); %>
<div id="items">
</div>
<%: Ajax.ActionLink("add new", "AddNewEquipment", new AjaxOptions {
UpdateTargetId = "items", InsertionMode = InsertionMode.InsertAfter }) %>
<input type="submit" value="submit" />
<% Html.EndForm(); %>
мой контроллер:
public ActionResult Index()
{
return View();
}
[HttpPost]
public ActionResult Index(FormInputs input)
{
return View(input);
}
public ActionResult AddNewEquipment()
{
return PartialView("~/Views/RMA/EditorTemplates/Equipment.ascx");
}
частичное представление, которое генерирует текстовые поля для оборудования:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<RmaMVC.Models.Entities.Equipment>" %>
<p>
<%: Html.TextBoxFor(x => x.ItemID) %>
<%: Html.TextBoxFor(x => x.Description) %>
<%: Html.TextBoxFor(x => x.Quantity) %>
<%: Html.TextBoxFor(x => x.SerialNumber) %>
</p>