Nov 17 2007

ASP.NET 点滴一

Posted by neio

最近又开始写些.NET的程序,从现在起开始吧遇到的一些问题和心得记录下来。

Problem.1

"sql_variant 到 uniqueidentifier 的隐式转换。请使用 CONVERT …."

在ASP.NET 中使用DataSource的时候如果数据库使用的uniqueidentifier,自动绑定所编译的程序运行时会有这个错误,因为其自动生成的类型是Object。有的人总想方设法吧类型设置成Guid的,其实只需要将类型设置为Empty即可。

例如我自己写程序的时候遇到的这个问题:

原来是:

<asp:ControlParameter ControlID="GridView1" Name="tgc_tgid" PropertyName="SelectedValue" Type="Object" />
                    <asp:ControlParameter ControlID="ddlRoles" Name="tgc_role" PropertyName="SelectedValue"  Type="Int32" />

只需要将Type="Object"去掉即可

Note.2

开启Trace

在  xxx.aspx文件头部

<%@ Page Language="C#"  AutoEventWireup="true"… Trace="true" %>

这样就能查看详细的跟踪信息。

 

Note.3

缓存控制

在 xxx.aspx文件头部

配置<%@ OutputCache %>,就可以控制缓存模式。

 

Note.4

ASP.NET身份验证信息跨域共享状态

在ASP.NET 2.0 中只需修改web.config文件即可,修改方法如下:

<authentication mode="Forms">
<forms name=".ASPNETFORM"   domain="imneio.com" loginUrl="/login.aspx" defaultUrl="/default.aspx" protection="All" timeout="30" path="/" requireSSL="false" slidingExpiration="true" enableCrossAppRedirects="false" cookieless="UseDeviceProfile" />
</authentication>

domain指定了cookie保存的域,只要保存的是 abc.com形式或者.abc.com的形式,那么其二级域名都可以共享此cookie。

此外,web.config标签中的<sessionState >也做相应修改,mode改为StateServer或者SqlServer,那么里面的session信息也就全部可以共享了。

StateServer需要在服务中开启“asp.net状态服务”的服务。

 

Note.5

ASP.NET 控件模板里面的Eval绑定特殊字段。

当DataSrouce用 select a from xxx 语句查询的时候,可以在模板里面用  Eval("a")  来获取其值。

但使用 select count(*) from xxx 语句做查询的时候,Eval(填什么内容?),用Eval("Column1")。

简单吧?!

Visits : 510 visited
Rating :
Bad oneNot good EnoughJust so soI like itPerfect !!! (No Ratings Yet)
Loading ... Loading ...
Filed under : Essay Pro, 汉语 |

Leave a Reply