Jquery 如何在Web窗体视图中更改div的html,并使用代码隐藏传递的html

Jquery 如何在Web窗体视图中更改div的html,并使用代码隐藏传递的html,jquery,html,webforms,Jquery,Html,Webforms,我正在做一个ASP.NET Web表单项目。我有垂直菜单,应该在所有页面中显示,但我想根据我所在的页面更改菜单内容。我将通过从XML文件获取数据来实现这一点,但为了简单起见,现在我已经硬编码了HTML,我想在我的一个视图中设置它,如下所示: public partial class Default : System.Web.UI.Page { public string verticalMenu = string.Empty; protected void Page_Load(o

我正在做一个
ASP.NET Web表单
项目。我有垂直菜单,应该在所有页面中显示,但我想根据我所在的页面更改菜单内容。我将通过从
XML
文件获取数据来实现这一点,但为了简单起见,现在我已经硬编码了
HTML
,我想在我的一个视图中设置它,如下所示:

public partial class Default : System.Web.UI.Page
{
    public string verticalMenu = string.Empty;
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
           verticalMenu = @"<ul>
           <li class='has-sub'><a href='#'><span>Products</span></a>
             <ul>
               <li><a href='#'><span>Product 1</span></a></li>
               <li><a href='#'><span>Product 2</span></a></li>
               <li class='last'><a href='#'><span>Product 3</span></a></li>
             </ul>
           //Some more of the same...
           </ul>";
         }
    }
 }

正确的方法是什么?

在将变量写入javascript之前,必须对其进行HTML编码

如果检查生成的HTML,就会在js行中看到语法错误

编辑: 添加了带有Leron找到的函数的代码

public partial class Default :         
    System.Web.UI.Page
    {
        public string verticalMenu = string.Empty;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                verticalMenu = @"<ul>
                    <li class='has-sub'><a href='#'><span>Products</span></a>
                    <ul>
                    <li><a href='#'><span>Product 1</span></a></li>
                    <li><a href='#'><span>Product 2</span></a></li>
                    <li class='last'><a href='#'><span>Product 3</span></a></li>
                    </ul>
                //Some more of the same...
                </ul>";
               JavaScriptSerializer ser = new JavaScriptSerializer();
               verticalMenu = ser.Serialize(verticalMenu);
           }
       }
    }
公共部分类默认值:
System.Web.UI.Page
{
公共字符串verticalMenu=string.Empty;
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
垂直菜单=@“
    //还有一些相同的。。。
”; JavaScriptSerializer ser=新的JavaScriptSerializer(); verticalMenu=序列序列化(verticalMenu); } } }
我们可以通过向div提供“runat=“server”并在代码隐藏中访问div id来简单地实现这一点 作为 divid.innerHTML=“此处的html代码”

如果您在母版页中使用“div”。然后我们可以通过以下方式进入其他页面(.cs)


div
仅在
Site.Master
页面中声明,默认情况下,我似乎无法从其他页面
.CS
文件访问它。也许我必须添加一些内容,而不仅仅是
runat=“server”
?是的,我正在搜索类似的内容。事实证明,如果我只是在
HTML
字符串上使用
JavaScriptSerializer
,它也可以正常工作,但如果您将答案更改为实际工作的示例,我将接受它。
Uncaught SyntaxError: Unexpected token < 
public partial class Default :         
    System.Web.UI.Page
    {
        public string verticalMenu = string.Empty;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                verticalMenu = @"<ul>
                    <li class='has-sub'><a href='#'><span>Products</span></a>
                    <ul>
                    <li><a href='#'><span>Product 1</span></a></li>
                    <li><a href='#'><span>Product 2</span></a></li>
                    <li class='last'><a href='#'><span>Product 3</span></a></li>
                    </ul>
                //Some more of the same...
                </ul>";
               JavaScriptSerializer ser = new JavaScriptSerializer();
               verticalMenu = ser.Serialize(verticalMenu);
           }
       }
    }
HtmlGenericControl h = Master.FindControl("divid") as HtmlGenericControl;
        h.InnerHtml = "dfkjsdfklj sdklflk";