我有一个模型的显示和编辑器模板。编辑器模板使用jquery accordion,显示模板使用标签。问题在于必须为jquery分配的ID才能工作。
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<SpletniObrazec.Models.Obrazec>" %>
<div id='Editor'>
<h3><a href="#"></a>Part 1</h3>
<div id='Editor-1'></div>
<h3><a href="#"></a>Part 2</h3>
<div id='Editor-2'></div>
<h3><a href="#"></a>Part 3</h3>
<div id='Editor-3'></div>
</div>
<script type="text/javascript">
$(document).ready(function () {
$('#Editor').accordion();
});
</script>这会将accordion放到the`< div>元素编辑器中。现在,如果我在同一视图上多次使用此模板,它们都将具有相同的Editor ID。
我需要在相同的视图上执行此操作:
Html.EditorForModel();
Html.EditorForModel();但是由于模板有硬编码的ID“编辑器”,第二个EditorForModel不能与accordion一起工作。
发布于 2012-05-15 03:51:35
您不必将ids放在accordion中的每个<div>上,因此您可以完全删除它们。对于外部<div>,使用类,而不是在选择器中使用启用折叠。
<div class="accordion">
<h3><a href="#"></a>Part 1</h3>
<div></div>
<h3><a href="#"></a>Part 2</h3>
<div></div>
<h3><a href="#"></a>Part 3</h3>
<div></div>
</div>
<script type="text/javascript">
$(document).ready(function () {
$('.accordion').accordion();
});
</script>发布于 2012-06-13 01:06:56
我不确定,但是你可以尝试对你创建的每个对象放入id。类似next Html.EditorForModel(new{id=SomeId});的东西。我看到你有答案,但请检查一下,让我知道它是否有效。
https://stackoverflow.com/questions/10587147
复制相似问题