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」があるため、2番目のEditorForModelはアコーディオンでは機能しません。

4

2 に答える 2

1

You don't have to put ids on each <div> inside the accordion, so you can drop them entirely. For the outer <div>, use a class instead for use in the selector enable the 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>
于 2012-05-14T19:51:34.860 に答える
0

よくわかりませんが、作成した各オブジェクトの ID を入力してみてください。次のようなものHtml.EditorForModel(new{id=SomeId});。回答がありましたが、確認して動作するかどうかをお知らせください。

于 2012-06-12T17:06:55.513 に答える