在用MenuData.xml定义菜单项的时候用<MenuItem Label="mx">定义可以但换成中文<MenuItem Label="明细">就不可以提示:
给定编码中有无效的字符。 行 3,位置 22。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Xml.XmlException: 给定编码中有无效的字符。 行 3,位置 22。源错误: 
行 20:  </TR>
行 21:  </TABLE>
行 22:  <cc1:ASPnetMenu id="ASPnetMenu1" runat="server" Width="781px" MenuStyle="ClassicHorizontal" 
行 23:  MenuData="menuData.xml" 
行 24:  DefaultGroupCssClass="MenuGroupVer" 
 为什么啊?怎么才可以定义中文菜单项呢?

解决方案 »

  1.   

    把 菜单的XML文件,修改一下编码 <? xml version="1.0" enconding="utf-8"?> 
    同是把xml文件 保存为utf-8格式, 就可以解决了
      

  2.   

    或者是 <?xml version="1.0" encoding="GB2312"?>  使用 default 编码进行保存
      

  3.   

    一、 AspnetMenu 引用的XML 菜单文件<?xml version="1.0" encoding="GB2312"?>  
    二、 项目文件的 Web.config 文件 <globalization responseEncoding="gb2312" requestEncoding="gb2312" />
      

  4.   

    把WEBCONFIG的所有编码都必为gb2312看看
      

  5.   

    <?xml version="1.0" encoding="GB2312"?>  http://blog.csdn.net/goody9807/articles/138871.aspx
    ==========现在就可以直接运行项目看到效果了。但这时看不到中文的菜单,因为如果我们把XML里的相关项目改为中文,会出现:给定编码中有无效的字符 这样的错误。解决办法是:
    用记事本打它menudata.xml文件,直接选另存为:文件名不变,把编码改为:UTF-8,提示是不是覆盖时选是。再次运行项目。以后要想每改一下XML文件内容,直接用VS是不行的,要用记事本打开,然后再次另存为UTF-8才行!(FIT!!!)
       附另一解决办法:设置<?xml version="1.0" encoding="gb2312" ?>