月归档:十一月 2014

解决textvnd.wap.wml引起的ASP.NET OutputCache Bug的方法

缓存是程序员的一大法宝,ASP.NET下要想给一个页面增加缓存,通常是加上OutputCache既可,既方便又省事。不过方便的同时会出现一个问题,就是某些页面大部分时间是正常的,偶尔会变为下载,只要重启应用程序进程池既可恢复。变为下载的情况如图: 如服务器上没有WAP站点,解决方法也很简单,如下所示: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\Browsers\Default.browser文件找到<defaultBrowser id=”Wml” parentID=”Default” >,注释或者删掉<capabilities>部分,然后运行在命令行中运行aspnet_regbrowsers -i。 <defaultBrowser id=”Wml” parentID=”Default” > <identification> <header name=”Accept” match=”text/vnd\.wap\.wml|text/hdml” /> <header name=”Accept” nonMatch=”application/xhtml\+xml; profile|application/vnd\.wap\.xhtml\+xml” /> </identification> <!– <capabilities> <capability name=”preferredRenderingMime” value=”text/vnd.wap.wml” /> <capability name=”preferredRenderingType” value=”wml11″ /> </capabilities> –> </defaultBrowser> 注意:如果服务器上要运行Net Framework版本的话,如即运行Net2.0又运行Net4.0,最好将所有的版本下的Default.browser文件都处理一下。还有我在windos server 2008 r2服务上修改完后,执行aspnet_regbrowsers … 继续阅读

发表在 Net | 评论关闭

repeater绑定的时候使用if语句

在net下进行webform开发的时候,使用最多的控件莫属asp:repeater,asp:repeater带来了方便的循环绑定,虽然有些不完美,没有提供分页功能,但丝毫没影响到asp:repeater的使用。但是经常会碰到需要简单的逻辑判断,之前的时候总是写一个函数进行绑定。假如只是一个简单的判断,感觉写函数有点多次一举,要是在绑定的时候直接进行判断,将会带来极大的便利,现将两种在绑定的时候直接判断的方法写出来。 第一种:绑定的时候使用三元运算符 <asp:repeater id=”Repeater1″ runat=”server”> <ItemTemplate> <li><%#eval(“username”)%></li> <li><%# eval(“ispass”)==”1″ ? “通过”:”未过”%></li> </ItemTemplate> </asp:repeater> 第二种:直接使用if进行逻辑判断。 <asp:repeater id=”Repeater1″ runat=”server”> <ItemTemplate> <li><%#eval(“username”)%></li> <% if (SuperAuthority()) { %> <li>权限1 也可以在这里直接绑定如:<%#eval(“username”)%></li> <%}else{%> <li>权限2</li> <%}%> </ItemTemplate> </asp:repeater> 注:虽然可以写if语句,但是if条件里不能有绑定的数据,也就是不能出现eval,但是if体里可以出现绑定的数据。鉴于此感觉还是三元运算符方便。不过if可以用在简单的权限判断上面也是很方便的。

发表在 Net | 评论关闭