0

aspx ビューを使用して .NET MVC プロジェクトで作業します。このツリー ビューの部分ビューがあります。

<%    
 TreeNode treeNode = Model.TreeNode;   
 treeNode.SelectAction = TreeNodeSelectAction.None;
 tv1.Nodes.Add(treeNode);
 tv1.ExpandAll();
%>

<form runat="server" id="form1">
 <asp:TreeView runat="server" ID="tv1"  ShowLines="true" EnableClientScript="true">
 </asp:TreeView>
</form>

しかし、展開/折りたたみのためにJavaScriptコードを台無しにするguidが先頭に追加されたidを持つdivをレンダリングします(つまり、機能しません)。なんで?

<div id="46ea7e79-e351-46fa-93cc-597e7cfe280b_tv1">
 <table style="border-width:0;" cellpadding="0" cellspacing="0">
  <tbody><tr>
   <td><a id="46ea7e79-e351-46fa-93cc-597e7cfe280b_tv1n0" href="...">..</a></td>
   <td><span id="46ea7e79-e351-46fa-93cc-597e7cfe280b_tv1t0">...</span></td>
  </tr></tbody>
  ...
 </table>
</div>

Ajax を使用して部分ビューを読み込み、コンテンツを div に追加しています。

4

1 に答える 1

1

GUID は、作成された ASP.NET ページにランダムな ID を与える MVC Web フォーム ビュー エンジンから来ていると思います。Web フォームでは、コントロール ID は階層的であるため、コントロールには親コントロールの ID が付加されます (この場合、ページは祖先です)。なぜこれを行うのか覚えていませんが、バグを回避するためだったと思います。

<form runat="server">そうは言っても、 ASP.NET Web フォームコントロールで を使用することTreeViewは、MVC では絶対にサポートされていません。そのため、GUID の問題を修正しても、MVC で Web フォーム コントロールを使用することはまだサポートされていません。

于 2013-03-26T19:39:33.440 に答える