具有IList <t>属性绑定问题的MVC 2模型</t>

时间:2011-09-07 18:32:54

标签: asp.net asp.net-mvc model

我正在开发一个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返回为null。

编辑:这是我到目前为止所拥有的。我的模型看起来像这样:

    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 个答案:

答案 0 :(得分:2)