0

我有一个模板

<script id="template" type="text/x-jquery-tmpl">
<div class="experience">
    <label for="c${count}">New Thing:</label>
    <input type="text" id="c${count}" name="Fund[${count}].Name" />
    <label for="c${count}">New Thing count:</label>
    <input type="text" id="c${count}" name="Fund[${count}].FundNo" />
</div>

我将控件动态添加到 div 容器中。

我的 mvc 应用程序中有一个模型

[Serializable]
public class Step2ViewModel : IStepViewModel
{
    [Required]
    public List<FormTest.Models.Item> Things;
}

[Serializable]
public class Item
{
    public string Name { get; set; }
    public string Number { get; set; }
}

如何将这些新创建的控件绑定到模型。这是否需要在我的模板中使用@Html.LabelFor、@Html.TextBoxFor 等?

谢谢!

编辑

以防万一问题可以解释 - 我想在发布表单时将动态创建的控件(使用 templ() 完成)绑定到我的模型中的 List 。

4

2 回答 2

0
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            var count = 0;
            $('#btnAddDiv').live('click', function () {
                var data = [{ 'count': count++}];
                $('#template').tmpl(data).appendTo('body');
            });
        });
    </script>
    <script id="template" type="text/x-jquery-tmpl">
<div class="experience">
    <label for="c${count}">New Thing:</label>
    <input type="text" id="c${count}" name="Fund[${count}].Name" />
    <label for="c${count}">New Thing count:</label>
    <input type="text" id="c${count}" name="Fund[${count}].FundNo" />
</div>
    </script>

  <input type="button" id="btnAddDiv" value="Add Div" />  

//在按钮点击时添加div

//Or




 <script src="http://code.jquery.com/jquery-latest.min.js"></script>
        <script src="http://ajax.microsoft.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                var data = [{ 'count': 1 }, { 'count': 2 }, { 'count': 3}];
                $('#template').tmpl(data).appendTo('body');
            });
        </script>
        <script id="template" type="text/x-jquery-tmpl">
    <div class="experience">
        <label for="c${count}">New Thing:</label>
        <input type="text" id="c${count}" name="Fund[${count}].Name" />
        <label for="c${count}">New Thing count:</label>
        <input type="text" id="c${count}" name="Fund[${count}].FundNo" />
    </div>
        </script>
于 2012-05-24T06:18:41.117 回答
0

首先,您使用的项目将不再有更多更新并且从未完成。

Boris Moore 创建了一种继续 jQuery 模板项目的方法,它被称为JsRender。使用 JsRender,您拥有 jQuery 模板的强大功能,以及更多功能,例如访问路径、使用辅助函数对 jQuery 没有任何依赖,而且列表还在继续……

PluralSight有一个整整 3 小时的 JsRender 课程(因此您可以看到它的重要性),您可以使用试用帐户开始查看它。


现在关于您的实际问题

每次您想让 .NET 框架在提交表单时为您填充模型时,您必须确保编写每个属性,因为您有一个数组,因此您需要传递模型的整个完整路径.

于 2012-05-24T12:27:09.710 回答