MVC3 - 在同一视图上多次使用模板

时间:2012-05-14 16:14:41

标签: c# jquery asp.net-mvc

我有模型的显示和编辑模板。编辑器模板使用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>

这把手风琴放在`&lt; DIV&GT;元素编辑器。现在,如果我在同一个视图上多次使用此模板,它们将具有相同的编辑ID。

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

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

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

2 个答案:

答案 0 :(得分:1)

您不必在手风琴内的每个<div>上放置ID,因此您可以完全放下它们。对于外部<div>,请使用类代替在选择器中启用accordion。

<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>

答案 1 :(得分:0)

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