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>

但是呈现一个带有 id 的 div 前面有一个 guid 搞砸了 JavaScript 代码以进行展开/折叠(这意味着它不起作用)。为什么?

<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 来自 MVC Web 窗体视图引擎,它为创建的 ASP.NET 页面提供随机 ID。在 Web 窗体中,控件 ID 是分层的,因此控件将在其前面附加其父控件的 ID(在这种情况下,页面是祖先)。我不记得它为什么这样做,但我认为这是为了解决一些错误。

话虽如此,在 MVC 中绝对不支持将 a<form runat="server">与 ASP.NET Web 窗体控件一起使用。TreeView因此,即使您修复了 GUID 问题,仍然不支持在 MVC 中使用 Web 窗体控件。

于 2013-03-26T19:39:33.440 回答