今天在写博客的页面集功能,根据url去寻找page,linq语句从sitepage的getmodellist()集合中获取符合条件的page,如果查询不到则跳转到404页面。代码是这样的:

var page = (from p in optsitepage.getmodellist()             where p.virtualurlpath.tolower() == requesttitle.tolower()             select p).first();   if (null == page) {     context.response.redirect(“/404.html”);     return; }

我故意传了个不存在的url,结果linq语句直接报错:system.invalidoperationexception: sequence contains no elements。查了下msdn发现用了first()的话,如果结果集中没有元素,它是不会返回null的。改成firstordefault()就 好了。

?var page = (from p in optsitepage.getmodellist()             where p.virtualurlpath.tolower() == requesttitle.tolower()             select p).firstordefault();

traceback http://www.wyjexplorer.cn/home/view/d44f795b009e20fd.html

 

摘自  汪宇杰