动态添加项目的问题-asp mvc

时间:2015-06-03 13:38:02

标签: jquery asp.net-mvc

我正在使用asp mvc应用程序,并面临以下问题: 我有一个与相应模型有关的视图。模型的一个属性是IEnumerable。我将它呈现如下:

 <div id="DetailsTemplates">
                @for (int i = 0; i < Model.Filter.itemDetails.Count; i++)
                {

                    @Html.EditorFor(m => m.Filter.itemDetails[i], "ItemDetailsUserControl");
                }
            </div>

和ItemDetailsUserControl看起来像这样:

  <div>
            <table >
                <tr>          
                <td>
                    @Html.TextBoxFor(model => model.ID, new {id = "id"})
                </td>
                <td >
                    @Html.TextBoxFor(model => model.Code, new {id = "code"})
                </td>
                <tr />
            </table>
        </div>

现在,我的视图中有2个按钮:搜索按钮,负责发布包含所有输入的整个表单,并添加按钮,将另一个项目添加到模型的Ienumerable集合中(并且应该添加另一个模板用户控件)。

我的添加按钮代码如下:

    $(".addButton").click(function (event) {
        var a = $("#FilterForm").serialize();
        event.preventDefault();
        $.ajax({
            url: '@Url.Action("AddBlankItemTemplate")',
            data: $("#FilterForm").serialize()
        }).success(function(partialView) {

            $('#DetailsTemplates').append(partialView);
        });
    });

和控制器中的操作:

public ActionResult AddBlankItemTemplate(TaxCalculationFilterModel model)
    {

        var newItem = new DetailsDTO()
        {
            ID = "",
            Code = 0
        };
        model.Filter.itemDetails.Add(newItem);
        return PartialView("~/Views/Home/EditorTemplates/DetailsUserControl.cshtml", newItem);

    }

搜索按钮只是发布包含所有输入/

的表单

现在,我可以看到每次点击添加按钮都会添加我想要的模板。 然后我填写数据,然后单击搜索按钮。 对于这两个动作,AddBlankItemTemplate和搜索动作,IEnumerable的模型属性只包含1.我可以理解为什么,我想添加的模板和模型iteself之间没有关系。我试着按照这篇文章没有成功: http://blogs.interknowlogy.com/2014/08/01/mvc-series-part-1-dynamically-adding-items-part-1/

帮助:)

0 个答案:

没有答案