【发布时间】:2016-01-02 05:33:14
【问题描述】:
我有一个视图(用于创建食谱),我动态地向其中添加了一个局部视图(代表产品)。配方中可以添加多种产品。使用 jQuery 在按钮单击时添加部分视图,效果很好:
$('.loadPartial').on('click', function (evt) {
evt.preventDefault();
evt.stopPropagation();
var $productsDiv = $('#productsDiv'),
url = $(this).data('url');
$.get(url, function (data) {
$productsDiv.append(data);
});
});
局部视图有一个组合。此组合的名称是使用 Html 辅助扩展方法“GetIndexedName”动态生成的,该方法将唯一索引添加到指定名称。如果我单击按钮两次,它应该呈现两个部分视图,第一次单击组合名称后应该是“ProductsCombo0”,在第二个“ProductsCombo1”之后
@Html.DropDownList(
@Html.GetIndexedName("ProductsCombo"),
null,
htmlAttributes: new { @class = "form-control col-md-3" }
)
问题是@Html.GetIndexedName 方法仅在第一个按钮单击后触发(在调试器中检查)。下一步点击只渲染部分视图,但确实使用生成名称的方法。所有组合都有名称“ProductsCombo0”、“ProductsCombo0”
你知道如何让它在每次渲染局部视图时触发吗?
如果不能以这种方式完成,您能否向我推荐其他生成唯一 ID 的解决方案?
【问题讨论】:
标签: javascript jquery asp.net-mvc asp.net-mvc-4 razor