我的征途是星辰大海

专注于DotNetNuke

DotNetNuke3.0.8中不能使用中文页面名的问题

       今天下载安装了DotNetNuke3.0.8,总体感觉比以前版本要稳定得多。这个版本被DNN 核心团队称为Release Candidate(RC),也就是所谓“发布版候选人”,相信不久之后的DNN3.0.9就将是最终发布版本了。
       不过发现了一个以前3.x版本都没有遇到的小问题,定义页面名称(TableName)的时候,不允许输入中文页面名!查看了一下源文件,发现原来在 "admin\Tabs\ManageTabs.ascx"的第38行有一个ID为"valregTabName" 的RegularExpressionValidator 控件。里面的正则表达式只允许输入英文字母、数字、下划线等,但是不接受其它的双字节字符。
      到ASP.NET论坛上查了一下,原来DNN 核心团队的解释是为了友好URL的实现而进行的设定。我个人觉得这种强制设置有点不太合适。
      解决办法有两种:
      1.把该控件删除(与以前的版本一样不要这个表达式验证控件)。
      2.看到一位叫chief cn的兄弟用了替换表达式 :[^\<\>\/\'\.\?\&]* 
         即改为
<asp:RegularExpressionValidator ID="valregTabName" CssClass="NormalRed" Runat="server" Display="Dynamic"
           errormessage="<br>Tab Name can only contain numbers, letters _ and - "
           resourcekey="valregTabName.ErrorMessage"
           ValidationExpression="[^\<\>\/\'\.\?\&]*"
           ControlToValidate="txtTabName"/>
       我对正则表达式不是很熟,个人感觉这个正则表达式对于友好URL也没太大帮助。请高手指点。
     

posted on 2005-01-02 23:39  阿飞虎  阅读(1165)  评论(7编辑  收藏  举报

导航