如何在CodeBehind中获取System.Web.UI.WebControls.Menu的HTML输出?

时间:2016-10-13 07:59:25

标签: c# asp.net asp.net-mvc

我有一个包含ASP.NET WebForms网站和MVC 5应用程序的解决方案。 WebForms项目包含用于主导航的MenuControl。我需要在MVC项目中使用相同的菜单。

我尝试使用https://stackoverflow.com/a/58931/1300140中提到的解决方案获取菜单的html,但没有成功。这是一个错误,说"控制' ctl03'类型'菜单'必须放在带有runat = server"

的表单标记内

如何获取菜单的HTML输出?另外,有没有更好的方法来实现我想要做的事情?

1 个答案:

答案 0 :(得分:1)

首先使用标记runat=server创建一个div(或任何其他asp.net控件),以便从后面的代码中获取它。

然后有点jquery并完成。

HTML:

 <div id="myDiv" runat="server"></div>

jquery的:

$(document).ready(function () {
       $("myDiv").html($("#yourMenuIdHere").html());
    });
代码背后的代码:

var divContent= myDiv.InnerHtml;

所以你得到了divContent变量中的所有内容。如果需要,您可以在页面加载中隐藏myDiv。如果这有帮助,请告诉我。