2

我有模型的显示和编辑器模板。编辑器模板使用 jquery 手风琴,显示模板使用选项卡。问题是必须为 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>

这会将手风琴放到`< div> 元素编辑器中。现在,如果我在同一个视图上多次使用此模板,它们都将具有相同的编辑器 ID。

我需要在同一视图上执行此操作:

Html.EditorForModel();
Html.EditorForModel();

但由于模板具有硬编码的 ID“Editor”,因此第二个 EditorForModel 不适用于手风琴。

4

2 回答 2

1

您不必<div>在手风琴内部的每个上都添加 id,因此您可以完全删除它们。对于外部<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-05-14T19:51:34.860 回答
0

我不确定,但您可以尝试为您创建的每个对象放置 id。类似下一个Html.EditorForModel(new{id=SomeId});。我看到你有答案,但请检查它并让我知道它是否有效。

于 2012-06-12T17:06:55.513 回答