我用的是.NET2003
我在做个新闻评论系统,首先在NewsListPart.ascx理列出新闻的标题的列表然后用URLRewriter重写新闻的URL:
<RewriterRule>
<LookFor>~/News/(\d+)\.html</LookFor>
<SendTo>~/NewsDetail.aspx?NewsID=$1</SendTo>
</RewriterRule>
这个时候地址栏里显示http://localhost/News/111.html
在NewsDetail.aspx里我放了个名为CommentPart的用户控件用来发表评论,然后给它赋参数
CommentPart cp = (CommentPart)this.FindControl("CommentPart1");
cp.NewsID = this.NewsID;
第一个问题来了:
第一次查看详细新闻时并没有什么问题,当我取消一个新闻连接后,我再打开另一个新闻连接的时候在cp.NewsID = this.NewsID;这句提示未将对象引用到实例,我查看了下this.NewsID是有值的,问题出在cp.NewsID上但是第一次进入为什么没有 出错?第二个问题:
在http://localhost/News/111.html里,我用CommentPart发表评论,在BSend_Click理这样写Response.Redirect(String.Format("/News/Comment/{0}.html",this.NewsID));
在webconfig里配置
    <RewriterRule>
<LookFor>~/News/Comment/(\d+)\.html</LookFor>
<SendTo>~/CommentList.aspx?NewsID=$1</SendTo>
</RewriterRule>
但是却跳转到了News/NewsDetail.aspx?NewsID=111然后提示页面不存在,但是我在CommentPart里用了个HyperLink HSend,然后this.HSend.NavigateUrl = String.Format("/News/Comment/{0}.html",this.NewsID);这样却能正确跳转到/News/Comment/111.html我对.net了解还不是很深,有没有朋友愿意指点下谢谢了,本人一向信誉良好,解决问题就给分!