开发者

MVC 2 model with IList<T> properties binding question

I'm working on an MVC 2 project and I have a model that looks like this:

public string AccountNumber { get; set; }
public IList<Equipment> ShippedEquipmentList { get; set; }

and a view that has a button for adding a new piece of equipment. Clicking the button dynamically adds new textboxes to the view for specifying another piece of equipment. The partial view it renders looks like this:

<%@ 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>

My question is: how do I bind this data to the model? When the controller gets called the ShippedEquipmentList comes back as null.

Edit: here is what I have so far. My model looks like this:

    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);
    }

my main view is this:

  <% 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(); %>

my controller:

    public ActionResult Index()
    {

        return View();
    }

    [HttpPost]
    public ActionResult Index(FormInputs input)
    {
        return View(input);
    }

    public ActionResult AddNewEquipment()
    {
        return PartialView("~/Views/RMA/EditorTemplates/Equipment.ascx");
    }

the partial view that generates the text boxes for the equipment:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<RmaMVC.Models.Entities.Equipment>" %>

<p>

<%: Html.TextBoxFor(x => x.ItemID) %>
<%: Html.TextBoxFor(x =开发者_StackOverflow社区> x.Description) %>
<%: Html.TextBoxFor(x => x.Quantity) %>
<%: Html.TextBoxFor(x => x.SerialNumber) %>
</p>


Check this: Model Binding To A List

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜