随笔-312  评论-11831  文章-2  trackbacks-216

摘要

本期共有11篇文章(毕竟是两周的内容,上周没来得及):

  1. Ajax和SilverLight应用程序的搜索引擎优化
  2. 最完整的Ajax类库、框架和工具包列表
  3. 5月31号列表:ASP.NET、ASP.NET AJAX、Visual Studio和.NET
  4. 在ASP.NET下载文件时直接弹出“另存为”对话框
  5. Script#:过去、现在和将来……
  6. 使用JavaScript为GridView行添加淡入淡出效果
  7. 创建SqlParameter的最佳实践
  8. ASP.NET AJAX客户端框架事件:为自定义类暴露事件
  9. BlogEngine.NET 1.0发布
  10. 如何在IIS7 Beta 3上安装FastCGI和PHP
  11. __doPostBack和浏览器的“回退”按钮

 

[1] SEO for Ajax and Silverlight Applications (Ajax和SilverLight应用程序的搜索引擎优化)

搜索引擎对于当代网站的重要性不言而喻,因此各个网站在搜索引擎优化(SEO)方面都下了很大的功夫。去年我也特意写过一篇关于博客园网站搜索引擎优化的建议文章(《针对博客园Blog的SEO(Search Engine Optimization – 搜索引擎优化)》)。不过很遗憾的是,Ajax和SilverLight(包括Flash)应用程序在搜索引擎优化方面却存在着很大的先天不足。

大牛Nikhil在这篇文章中分析了这个问题,并给出了一些解决方案。虽然称不上完美,不过仍旧值得我们每个人参考。

 

[2] A complete list of Ajax Libraries, Frameworks and Toolkits (最完整的Ajax类库、框架和工具包列表)

Ajax的风头旺了好长一段时间(虽然现在风头似乎已经被SilverLight等其他RIA架构取代),因此各个类库、框架和工具包自然层出不穷。这篇文章就非常全面地列出了当今市面上的各种Ajax类库、框架和工具包。并提供了更加详细比较总结的页面(http://joeon.net/AJAX_Frameworks_List.htm)。

有这方面需要的朋友不妨参考一下。

 

[3] May 31st Links: ASP.NET, ASP.NET AJAX, Visual Studio and .NET (5月31号列表:ASP.NET、ASP.NET AJAX、Visual Studio和.NET)

“善于归纳总结”的Scott大叔充分地发挥了这方面的特长,在这篇文章中给出了一些最近有关ASP.NET、ASP.NET AJAX、Visual Studio和.NET的好文章,每个文章都加了一两句的评语。(似乎有点类似于我的《ASP.NET英文技术文章推荐》哦,让我自恋一把,嘿嘿)

这篇文章的ASP.NET和ASP.NET AJAX部分包含如下的推荐文章,大概看了一下,还都算不错。其中很多我都曾经在从前的《ASP.NET英文技术文章推荐》中推荐过:

  1. SubSonic Documentation and Project Site
  2. Examining ASP.NET 2.0's Membership, Roles and Profile System
  3. Rolling Your Own Website Administration Tool (Part 1) and Part2
  4. Official ASP.NET Provider Support from Oracle
  5. Asynchronous Page in ASP.NET 2.0
  6. What ASP.NET Developers Should Know About JavaScript
  7. ASP.NET AJAX UpdatePanel Tips and Tricks
  8. Write a Simple Control to Refresh UpdatePanels from Client Side

值得一提的是,最后一篇文章来自于博客园的Jeffrey Zhao,看来小伙子的能力已经有目共睹了,前途一片光明。

 

[4] Downloading a File with a Save As Dialog in ASP.NET (在ASP.NET下载文件时直接弹出“另存为”对话框)

这个主题不知道已经被多少人问过多少遍了,无论是ASP.NET,还是PHP还是什么别的CGI,似乎这也算做一个“永恒”的话题了。

其实解决方案很简单(无论哪个CGI平台都是如此),只是一个header而已:

Response.ContentType = "image/jpeg";
Response.AppendHeader("Content-Disposition","attachment; filename=SailBig.jpg");
Response.TransmitFile( Server.MapPath("~/images/sailbig.jpg") );
Response.End();

 

[5] Script#: Past, Present, Future... (Script#:过去、现在和将来……)

Script#是大牛Nikhil的一个比较有创意的东西,相信对ASP.NET AJAX(Atlas)比较熟悉的朋友对此都不会陌生。旨在用服务器端代码书写客户端应用程序组件,然后由编译器生成“烦人”的JavaScript——创意和Google的GWT如出一辙。不过微软公司一直没有官方的支持,让这个非常有意思的东西也一直停留在“雷声大雨点小”的阶段。大牛Nikhil即使再厉害,以个人之力对抗Google……后果还是可想而知的。

在这篇文章中,大牛回顾了过去,介绍了现在,展望了未来。看来他对Script#还是非常看重的。作为开发者/使用者的我们,这自然是个好消息。让我们拭目以待吧……

 

[6] GridView Row Fading Effect Using JavaScript (使用JavaScript为GridView行添加淡入淡出效果)

啥也不说了,看看图吧。用户体验方面确实做得很不错!

 

[7] Creating SqlParameters Best Practices (创建SqlParameter的最佳实践)

短小精悍的一篇文章,介绍了一些创建SqlParameter数组的方法,并给出了作者最喜欢的一种:

SqlParameter[] sqlParams = new SqlParameter[] {
   new SqlParameter("@username", strUserName) ,
   new SqlParameter("@password", strPassword)
};

也可以在创建时加上一些逻辑:

SqlParameter[] sqlParams = new SqlParameter[] {
  new SqlParameter("@Required", required),
  questionCode == null ? new SqlParameter("@Code", DBNull.Value) : new SqlParameter("@Code", questionCode)
};

看上去还是挺优雅的。

 

[8] Microsoft Ajax events - part 2: exposing events from custom classes (ASP.NET AJAX客户端框架事件:为自定义类暴露事件)

ASP.NET AJAX客户端框架为JavaScript提供了很多丰富的面向对象扩展功能,包括对事件的支持等。本文就介绍了在ASP.NET AJAX客户端类中暴露字定义事件的方法——其实非常简单,只要如下一段代码就够了:

add_tick: function(handler) {
    this.get_events().addHandler("tick", handler);
},
 
remove_tick: function(handler) {
    this.get_events().removeHandler("tick", handler);
},
 
_tick: function() {
    var handler = this.get_events().getHandler("tick");
    if (handler) handler(this, Sys.EventArgs.Empty);
    // [...]
}

 

[9] Official BlogEngine.NET 1.0 Release (BlogEngine.NET 1.0发布)

BlogEngine.NET是一个完全基于ASP.NET 2.0的、C#编写的简单的开源Blog系统。其官方网站为http://www.dotnetblogengine.net/。目前刚刚发布了1.0正式版本,主要功能虽然称不上强大,但是足够用了,包括:

  1. A nice variety of cool widgets
  2. A very sweet commenting system
  3. Great syndication support (RSS, Atom, and Feedburner)
  4. Support for Metaweblog API
  5. Trackbacks / Pingbacks
  6. A nice blog search
  7. Referrer stats
  8. Easy theme creation.

事实上,这并不是我推荐间的主要原因,因为纯粹从使用者角度来看,比BlogEngine.NET强大的Blog系统多的是。之所以推荐,就是因为它的源代码——整洁明晰,架构优雅,堪称学习ASP.NET 2.0的完美教材。与ASP.NET 2.0的那些Starter Kit相比,更是完美得太多!

 

[10] How to install FastCGI and PHP on IIS7 Beta 3 (如何在IIS7 Beta 3上安装FastCGI和PHP)

这是一个视频Blog(不知道应该叫什么名……播客?),其中总结了在IIS7 Beta 3上安装FastCGI和PHP的方法。作者还给出了视频中的要点。有需要的朋友不妨参考一下,看看IIS 7的强大功能……

 

[11] __doPostBack and the Back Button(__doPostBack和浏览器的“回退”按钮)

看到这个标题的朋友相比立即就能够猜出其中的内容吧。作者深入分析了半天(分析过程真的很不错,很不错),最后给出了这样的结论:

Not sure how to address this directly. I wouldn't say this is a bug in ASP.NET, and I'd be even hard pressed to call this a browser bug - browsers do write submitted POST values back into the variables of a page when you click the back button and that certainly has to work.

posted on 2007-06-01 22:44 Dflying Chen 阅读(5837) 评论(70)  编辑 收藏 所属分类: ASP.NET英文技术文章推荐

评论:
#1楼  2007-06-01 23:08 | 小鬼 [未注册用户]
看来我是专业灌水的了。沙发?
  回复  引用    
#2楼 [楼主] 2007-06-01 23:13 | Dflying Chen      
@小鬼
:)
  回复  引用  查看    
#3楼  2007-06-01 23:28 | Cat Chen      
10.视频播客可以叫做video podcast,又或者是vlog(读起来大概是ver'log,前面那个ver发音很轻,把v的辅音发出来就是了)。不过只有比较geek的人才知道vlog是什么,况且有些人知道vlog也不太接受此读法,所以还是video podcast好了。
  回复  引用  查看    
#4楼  2007-06-01 23:29 | Cat Chen      
4.这个问题经常有人问,不过附加上encoding的问题——为什么我输出的文件名为中文时就不行啊?
  回复  引用  查看    
#5楼  2007-06-02 00:18 | Anthan      
貌似老外也要出书了噢
Introducing ASP.NET AJAX 和 Professional ASP.NET 2.0 AJAX
  回复  引用  查看    
#6楼  2007-06-02 00:25 | Justin      
写这么多也不容易啊,支持一下
  回复  引用  查看    
#7楼  2007-06-02 00:59 | Jeffrey Zhao      
我的英文blog用的就是blogengine,扩展了一些功能,现在换上以后,估计还要修改不少东西。不过blogengine写的真的很好。
  回复  引用  查看    
#8楼  2007-06-02 01:01 | Jeffrey Zhao      
@Anthan
Professional ASP.NET 2.0 AJAX 这本书没有搜到唉。
  回复  引用  查看    
#9楼  2007-06-02 01:07 | Jeffrey Zhao      
@Cat Chen
要Encoding的,第二个参数这样就可以了:
"attachment; filename=" + HttpUtility.UrlEncode("你好.txt")
  回复  引用  查看    
#10楼 [楼主] 2007-06-02 08:43 | Dflying Chen      
@Cat Chen
呵呵,长见识了阿
  回复  引用  查看    
#11楼 [楼主] 2007-06-02 08:43 | Dflying Chen      
@Anthan
呵呵,难得国人的书比老外的快啊
  回复  引用  查看    
#12楼 [楼主] 2007-06-02 08:43 | Dflying Chen      
@Justin
谢谢支持!
  回复  引用  查看    
#13楼 [楼主] 2007-06-02 08:44 | Dflying Chen      
@Jeffrey Zhao
原来你用的就是blogengine阿,呵呵,真不错!
  回复  引用  查看    
#14楼 [楼主] 2007-06-02 08:44 | Dflying Chen      
@Jeffrey Zhao
Professional ASP.NET 2.0 AJAX不知道讲了什么东西,呵呵

  回复  引用  查看    
#15楼 [楼主] 2007-06-02 08:44 | Dflying Chen      
@Jeffrey Zhao
@Cat Chen
搞定了,呵呵
  回复  引用  查看    
#16楼  2007-06-02 09:56 | salonliudong [未注册用户]
好漂亮的文章
  回复  引用    
#17楼 [楼主] 2007-06-02 10:00 | Dflying Chen      
@salonliudong
漂亮从何谈起阿?呵呵
  回复  引用  查看    
#18楼  2007-06-02 10:13 | 哈密瓜牌牛奶      
这周的文章都很优质啊!!!!!!!
我们的老赵真厉害:)
  回复  引用  查看    
#19楼  2007-06-02 10:28 | 李阳      
支持
  回复  引用  查看    
#20楼  2007-06-02 10:31 | 哈密瓜牌牛奶      
还有我要Down BlogEngine.Net下来学习了,呵呵:)
  回复  引用  查看    
#21楼 [楼主] 2007-06-02 10:41 | Dflying Chen      
@哈密瓜牌牛奶
呵呵,老赵确实不错
  回复  引用  查看    
#22楼 [楼主] 2007-06-02 10:41 | Dflying Chen      
@李阳
谢谢
  回复  引用  查看    
#23楼 [楼主] 2007-06-02 10:41 | Dflying Chen      
@哈密瓜牌牛奶
BlogEngine.Net真的非常适合学习,呵呵
  回复  引用  查看    
#24楼  2007-06-02 10:52 | 徐鸿翼      
BlogEngine.Net和Pet Shop相比,侧重点有哪些不同呢?
  回复  引用  查看    
#25楼 [楼主] 2007-06-02 11:17 | Dflying Chen      
@徐鸿翼
Pet Shop的架构很一般,除了分层之外,似乎没什么亮点,而且又那么庞大。不知道为什么这么多人那么追捧……可能因为它使用了很多ASP.NET特性吧。
BlogEngine.Net的代码质量,架构设计等等都非常不错,而且比较轻量级,非常适合学习。
  回复  引用  查看    
#26楼  2007-06-02 11:25 | 徐鸿翼      
@Dflying Chen
谢谢,我会对比着学习的:)
  回复  引用  查看    
#27楼 [楼主] 2007-06-02 12:23 | Dflying Chen      
@徐鸿翼
:)
  回复  引用  查看    
#28楼  2007-06-02 13:41 | 里奥特      
其中有些文章还是不错的,不过个人觉得第七点是否欠妥?虽然优雅,但效率似乎不高.
连参数类型,长度等都没有提供,需要系统自动去分析,估计不是很好.
  回复  引用  查看    
#29楼  2007-06-02 14:12 | Jeffrey Zhao      
才发现我的文章原来被ScottGu推荐了,荣幸啊,继续努力。:)
  回复  引用  查看    
#30楼  2007-06-02 18:02 | Anders Cui      
微软的Starter Kits确实让人不敢恭维
  回复  引用  查看    
#31楼 [楼主] 2007-06-02 21:48 | Dflying Chen      
@里奥特
恩,确实值得考虑
  回复  引用  查看    
#32楼 [楼主] 2007-06-02 21:49 | Dflying Chen      
@Jeffrey Zhao
呵呵,小伙不错!
  回复  引用  查看    
#33楼 [楼主] 2007-06-02 21:49 | Dflying Chen      
@Anders Cui
Starter Kit的代码质量太差了
  回复  引用  查看    
#34楼  2007-06-03 00:48 | wqx [未注册用户]
string str ="F:/Blog/CodeResource/Images/Pictures" ;

string[] pics = getFileNames(str+"/Request["BlogId"]");
Request["BlogId"]是想获取网页地址栏的BlogId,而在别的页面也是可以获取到的,这个BlogId是对应一个文件夹的,所以如果能获取BlogId的话就可以指向那个路径下的文件夹了, 但 string[] pics = getFileNames(str+"/Request["BlogId"]");这样表达有下画线,表明这样表示路径的语法还不对,但我试着修改了几次都不行,希望得到指点,我不知道是应该是什么样的格式才是正确的。
  回复  引用    
#35楼  2007-06-03 04:37 | Axel [未注册用户]
@Jeffrey Zhao
请问您的英文blog上的read more...是自已扩展的还是本来就有的。
  回复  引用    
#36楼  2007-06-03 04:57 | Jeffrey Zhao      
@Axel
这些是我自己扩展的,我昨天下午把1.0换了上去,并且修改了一些功能,read more是其中之一。其实很简单,只要修改个别文件,十几行代码就可以了,BlogEngine是非常容易看懂和修改的代码,不像以前看.Text的代码,很久不知所云……
  回复  引用  查看    
#37楼  2007-06-03 05:01 | Jeffrey Zhao      
@MK2
这个方法偷懒,呵呵。其实很多地方用到这种方法,比如JSON -> Object时,都是靠属性名称来设置属性值的。
  回复  引用  查看    
#38楼  2007-06-03 05:39 | Axel [未注册用户]
@Jeffrey Zhao
谢谢,可惜blogengine是单用户,它是通过xml来存入文档的。如果扩展成多用户,我认为效率会是一个很大的问题。例如如果有上千人,必须建立上千个目录,然后存放这些xml文件。
它可能本身就是为单用户设计的。
  回复  引用    
#39楼  2007-06-03 05:41 | Axel [未注册用户]
@Jeffrey Zhao 惊异在这个时候还能看到你的回复.:)
  回复  引用    
#40楼  2007-06-03 07:17 | Jeffrey Zhao      
@Axel
BlogEngine的确是一个轻量级的blog系统,只适合个人使用。您可以看到它使用的Provider模式,只提供了一些粒度很细的方法。例如BlogProvider,它有个属性是返回所有Post的List,但是这个功能在许多地方被用到,例如统计所有文章数量时也需要返回所有的Post内容,这一点肯定是不适合大型系统的。
不过你说的n个用户n个目录倒不是扩展性方面的问题,因为BlogEngine使用了Provider模式,XML只是默认的功能和存储方法,您可以开发自己的BlogProvider来替换默认的XmlBlogProvider即可,这一点还是非常灵活的。

// 前一个晚上睡得太多,整整12个小时,我想就多花点时间看看东西,我有一个多月没有关注过很多内容了,要补回来。:)
  回复  引用  查看    
#41楼 [楼主] 2007-06-03 09:05 | Dflying Chen      
@wqx
Request["BlogId"]是一个变量,所以不能将它直接放在字符串中啊,呵呵。好怀念PHP的写法……
  回复  引用  查看    
#42楼 [楼主] 2007-06-03 09:06 | Dflying Chen      
@Jeffrey Zhao
@Axel
呵呵,你俩都是勤劳的好孩子,这么晚了还不睡
  回复  引用  查看    
#43楼  2007-06-03 17:48 | wqx [未注册用户]
但我不可以在静态函数中把Request["BlogId"]先转换为字符串,因为错误是:非静态的字段、方法或属性“System.Web.UI.Page.Request.get”要求对象引用。而我使用的那个函数是静态的,去掉static就会出错了。有什么方法解决吗??
  回复  引用    
#44楼  2007-06-03 17:51 | wqx [未注册用户]
public static AjaxControlToolkit.Slide[] GetSlides()
{
//string str ="F:/Blog/CodeResource/Images/Pictures" ;
//遍历文件夹,把文件放入pics
//string id = Request["BlogID"].ToString();
//int BlogID = Convert.ToInt32(id);
string[] pics = getFileNames("F:/Blog/CodeResource/Images/Pictures/image");
//string[] pics = getFileNames(str+"/id");
int picsLength = pics.Length;

AjaxControlToolkit.Slide[] temp = new AjaxControlToolkit.Slide[picsLength];

for (int i = 0; i < picsLength; i++)
{
temp[i] = new AjaxControlToolkit.Slide("image/" + pics[i], "photo" + i, "图片" + i);

}
return temp;

}//我的那个函数,是借用AJAX一个控件
  回复  引用    
#45楼 [楼主] 2007-06-03 21:15 | Dflying Chen      
@wqx
使用System.Web.HttpContext.Current.Request["BlogID"].ToString()即可
  回复  引用  查看    
#46楼  2007-06-03 22:12 | JesseZhao      
BlogEngine.NET
对这个东西比较感兴趣
  回复  引用  查看    
#47楼  2007-06-04 07:33 | 里奥特      
@wqx
@Jeffrey Zhao
两牛人,深夜了,注意身体哦.革命本钱!!
  回复  引用  查看    
#48楼  2007-06-04 09:40 | shitao [未注册用户]
BlogEngine.NET 确实比较实用呀,我已经看见“Jeffrey Zhao”的英文Blog:http://www.jeffzon.net/blog/,在原有基础上只做少许改动,即可使用了,很爽的一个工具呀。

不知“Dflying Chen”、“Jeffrey Zhao”等高手们,是否有兴趣把“BlogEngine.NET”做一些基本的介绍,它的架构、控件,如何更快上手等等,比如它使用“XML”而不是SQL SERVER之类的数据库来存储数据,和那个庞大的有些吓人的“Pet Shop”的N层架构比较起来,哪个更好一些,等等,谢谢了!
  回复  引用    
#49楼  2007-06-04 11:56 | Jeffrey Zhao      
@shitao
这也是我准备写的东西,不过停了一个多月,积累的东西有点多,慢慢来吧。:)
  回复  引用  查看    
#50楼 [楼主] 2007-06-04 12:48 | Dflying Chen      
@shitao
@Jeffrey Zhao
有空我也来写点,呵呵

  回复  引用  查看    
#51楼  2007-06-04 13:08 | 阿一      
很喜欢你的这个本周推荐文章。
希望能继续坚持下去,辛苦了!
  回复  引用  查看    
#52楼  2007-06-05 08:26 | shitao [未注册用户]
@Dflying Chen
@Jeffrey Zhao
非常感谢你们大公无私的开源精神!
  回复  引用    
#53楼 [楼主] 2007-06-05 08:57 | Dflying Chen      
@阿一
我会尽力坚持的!谢谢鼓励!
  回复  引用  查看    
#54楼 [楼主] 2007-06-05 08:57 | Dflying Chen      
@shitao
过奖了,我没做什么。Jeffrey才是真正的大公无私
  回复  引用  查看    
#55楼  2007-06-05 09:51 | 哈密瓜牌牛奶      
昨晚回去编译了一下BlogEngine并运行,发现
BlogEngine\User controls 下面的
--------------------
public void RaiseCallbackEvent(string eventArgument)
{
string[] args = eventArgument.Split('?);
string author = args[0];
string email = args[1];
string website = args[2];
string country = args[3];
string content = args[4];
编译不通过,不知道什么原因。eventArgument.Split('?);这里,应该换成什么呢?
  回复  引用  查看    
#56楼 [楼主] 2007-06-05 10:04 | Dflying Chen      
@哈密瓜牌牛奶
具体的异常是什么呢?
  回复  引用  查看    
#57楼  2007-06-05 11:37 | 哈密瓜牌牛奶      
我下载的是官方最新的Release版,版本号:1.0.0.0,开发环境只安装了.NET FramWork2.0 + VS2005,具体异常如下:
------------------------
打开Blog文章的详细内容页时:
-----
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误信息: CS1010: 常量中有换行符

源错误:

行 368: public void RaiseCallbackEvent(string eventArgument)
行 369: {
行 370: string[] args = eventArgument.Split('?);
行 371: string author = args[0];
行 372: string email = args[1];


源文件: c:\BlogEngine.NET\BlogEngine\User controls\CommentView.ascx.cs 行: 370

----------------------------------
编译为解决方案时
--------
错误 1 常量中有换行符 C:\BlogEngine.NET\BlogEngine\User controls\CommentView.ascx.cs 370
错误 2 字符文本中的字符太多 C:\BlogEngine.NET\BlogEngine\User controls\CommentView.ascx.cs 370
警告 3 检测到无法访问的代码 C:\BlogEngine.NET\BlogEngine.Core\Search.cs 369 7 BlogEngine.Core
警告 4 检测到无法访问的代码 C:\BlogEngine.NET\BlogEngine.Core\Search.cs 383 9 BlogEngine.Core
警告 5 标识符“Search.Catalog._word”不符合 CLS C:\BlogEngine.NET\BlogEngine.Core\Search.cs 59 19 BlogEngine.Core
警告 6 标识符“Search.Catalog._pointers”不符合 CLS C:\BlogEngine.NET\BlogEngine.Core\Search.cs 63 36 BlogEngine.Core
警告 7 标识符“Search.Result._post”不符合 CLS C:\BlogEngine.NET\BlogEngine.Core\Search.cs 132 17 BlogEngine.Core
错误 8 常量中有换行符 C:\BlogEngine.NET\BlogEngine\User controls\CommentView.ascx.cs 370 41 C:\BlogEngine.NET\BlogEngine\
错误 9 字符文本中的字符太多 C:\BlogEngine.NET\BlogEngine\User controls\CommentView.ascx.cs 370 41 C:\BlogEngine.NET\BlogEngine\
错误 10 应输入 ) C:\BlogEngine.NET\BlogEngine\User controls\CommentView.ascx.cs 370 45 C:\BlogEngine.NET\BlogEngine\
错误 11 应输入 ; C:\BlogEngine.NET\BlogEngine\User controls\CommentView.ascx.cs 370 45 C:\BlogEngine.NET\BlogEngine\
--------------------------------
  回复  引用  查看    
#58楼  2007-06-05 12:18 | shitao [未注册用户]
@哈密瓜牌牛奶
我也遇见了同样的问题 在发布帖子的时候发生的
  回复  引用    
#59楼  2007-06-05 13:54 | 里奥特      
@哈密瓜牌牛奶
@shitao

第370行改成:

string[] args = eventArgument.Split('?');

少了个单引号..

  回复  引用  查看    
#60楼  2007-06-05 15:09 | shitao [未注册用户]
@里奥特
谢谢 可以运行了
  回复  引用    
#61楼 [楼主] 2007-06-05 15:43 | Dflying Chen      
@哈密瓜牌牛奶
@shitao
@里奥特
呵呵,作者发布代码的时候太不小心了
  回复  引用  查看    
#62楼  2007-06-05 17:40 | 哈密瓜牌牛奶      
我昨晚也有改过来的,改成 string[] args = eventArgument.Split('?'); 或者 string[] args = eventArgument.Split(' '); 但是改了后,某一具体文章显示有js错误!
  回复  引用  查看    
#63楼  2007-06-05 18:08 | 里奥特      
@Dflying Chen
是啊,这应该是比较低级的..

@哈密瓜牌牛奶
js错误跟这里没有关系.客户端脚本问题..

  回复  引用  查看    
#64楼 [楼主] 2007-06-05 21:01 | Dflying Chen      
@哈密瓜牌牛奶
@里奥特
:)
  回复  引用  查看    
#65楼  2007-06-06 09:21 | 哈密瓜牌牛奶      
@Dflying Chen
:)
  回复  引用  查看    
#66楼  2007-06-07 10:09 | 哈密瓜牌牛奶      
呵呵,老赵这个是完整的解答:)
  回复  引用  查看    
#67楼 [楼主] 2007-06-07 10:12 | Dflying Chen      
@哈密瓜牌牛奶
呵呵,老赵很厉害的
  回复  引用  查看    
#68楼  2008-02-26 13:10 | wsmhuiyounameduorena [未注册用户]
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

未能找到路径“d:\BlogEngine\App_Data\files\”的一部分。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.IO.DirectoryNotFoundException: 未能找到路径“d:\BlogEngine\App_Data\files\”的一部分。

源错误:


行 95: {
行 96: string folder = Server.MapPath(virtualFolder);
行 97: control.PostedFile.SaveAs(folder + control.FileName);
行 98: }
行 99:


源文件:d:\blogengine\admin\Pages\Add_entry.aspx.cs 行: 97

堆栈跟踪:


[DirectoryNotFoundException: 未能找到路径“d:\BlogEngine\App_Data\files\”的一部分。]
System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +492
System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) +1038
System.IO.FileStream..ctor(String path, FileMode mode) +64
System.Web.HttpPostedFile.SaveAs(String filename) +87
admin_entry.Upload(String virtualFolder, FileUpload control) in d:\blogengine\admin\Pages\Add_entry.aspx.cs:97
admin_entry.btnUploadImage_Click(Object sender, EventArgs e) in d:\blogengine\admin\Pages\Add_entry.aspx.cs:79
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +105
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +107
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +7
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +11
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1746




--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.1433; ASP.NET 版本:2.0.50727.1433
  回复  引用    

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
 

另存  打印