Модель MVC 2 со свойствами IList <T>, связывающая вопрос - PullRequest
1 голос
/ 07 сентября 2011

Я работаю над проектом 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>

1 Ответ

2 голосов
/ 07 сентября 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...