linux社区爱心援助Linux认证系列教程业界动态站务新闻公司招聘网络学院网址大全LPI专题CISCO专题
设为首页
加入收藏
管理团队
JSP  
JAVA  
PERL  
 您的位置:首页 > 开发语言 > asp.net >
栏目导栏
  php
  JSP
  ASP
  asp.net
  JAVA
  c/c++/c#
  perl
  JavaScript
  Basic
  Delphi
资料搜索
热门文章
·NetBPM工作流的一个示例:请假
·Office Web Components(OWC)绘
·asp.net正则表达式语法
·asp.net 2.0 ajax中使用PopupC
·Ado.Net读取Excel常见问题总结
·数据源为空时如何让GridView显
·如何让UpdatePanel支持文件上传
·C#.Net的常见面试试题和参考答
·asp.net ajax客户端编程+jquer
·Brettle.Web.NeatUpload.dll支
·ASP.NET使用Cookie
·ASP.NET DEMO 15: 同时支持行单
·如何使IE的后退按钮无效
·如何在ASP.NET中用OWC绘制图表
·asp.net:正确判断当前用户角色
最新文章
·Ajax Control Toolkit Animati
·讨论一下类似BlogEngine内一次
·使用CSS+SiteMap+UserControl+
·Asp.net中多彩下拉框的实现
·浅谈ASP.NET的Postback
·分清ASP.NET AJAX中的Extender
·Tip:在使用AjaxControlTookit
·有关注册DataItem的一些可能被
·IIRF(Ionic's Isapi Rewrite
·asp.net 客户端回调功能的实现
·关于控件部分的看法--读Progra
·为什么在vista上做开发
·如何封装JS和CSS文件为服务器端
·岂今我看过的最强的排序算法
·设计模式学习笔记之单件模式
Google
 
开源的.net MVC框架ProMesh.NET学习
[ 作者:  加入时间:2007-11-26 16:15:57  来自:Linux联盟收集整理 ]
觉得ProMesh学习起来还是很简单的,例子也很容易看懂. 稍微研究下相关的方法都能了解个大概.  iYNLinux联盟
  下面把基本配置说下,很简单 iYNLinux联盟
   iYNLinux联盟
  1.引用Activa.ProMesh.dll iYNLinux联盟
  2.配置web.config文件,下面是我的配置 iYNLinux联盟
   1<?xml version="1.0" encoding="utf-8"?> iYNLinux联盟
   2 iYNLinux联盟
   3<configuration> iYNLinux联盟
   4 iYNLinux联盟
   5 <appSettings> iYNLinux联盟
   6 <add key="ProMesh.ApplicationClass" value="Blog.Web.Application, Blog.Web"/> iYNLinux联盟
   7 </appSettings> iYNLinux联盟
   8 iYNLinux联盟
   9 <system.web> iYNLinux联盟
  10 <!-- iYNLinux联盟
  11 设置 compilation debug="true" 可将调试符号插入 iYNLinux联盟
  12 已编译的页面中。但由于这会 iYNLinux联盟
  13 影响性能,因此只在开发过程中将此值 iYNLinux联盟
  14 设置为 true。 iYNLinux联盟
  15 --> iYNLinux联盟
  16 <compilation debug="false"> iYNLinux联盟
  17 iYNLinux联盟
  18 </compilation> iYNLinux联盟
  19 <!-- iYNLinux联盟
  20 通过 <authentication> 节可以配置 ASP.NET 用来 iYNLinux联盟
  21 识别进入用户的 iYNLinux联盟
  22 安全身份验证模式。 iYNLinux联盟
  23 --> iYNLinux联盟
  24 <authentication mode="Windows" /> iYNLinux联盟
  25 <!-- iYNLinux联盟
  26 如果在执行请求的过程中出现未处理的错误, iYNLinux联盟
  27 则通过 <customErrors> 节可以配置相应的处理步骤。具体说来, iYNLinux联盟
  28 开发人员通过该节可以配置 iYNLinux联盟
  29 要显示的 html 错误页 iYNLinux联盟
  30 以代替错误堆栈跟踪。 iYNLinux联盟
  31 iYNLinux联盟
  32 <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm"> iYNLinux联盟
  33 <error statusCode="403" redirect="NoAccess.htm" /> iYNLinux联盟
  34 <error statusCode="404" redirect="FileNotFound.htm" /> iYNLinux联盟
  35 </customErrors> iYNLinux联盟
  36 --> iYNLinux联盟
  37 <httpHandlers> iYNLinux联盟
  38 <add verb="*" path="*.ashx" type="Activa.ProMesh.PageHandler, Activa.ProMesh"/> iYNLinux联盟
  39 </httpHandlers> iYNLinux联盟
  40 <httpModules> iYNLinux联盟
  41 <add name="ProMeshModule" type="Activa.ProMesh.HttpModule, Activa.ProMesh"/> iYNLinux联盟
  42 </httpModules> iYNLinux联盟
  43 </system.web> iYNLinux联盟
  44 iYNLinux联盟
  45</configuration> iYNLinux联盟
  46 iYNLinux联盟
  httpHandler和httpModule就按照上面的配置.path="*.ashx"改成你想要的扩展名. iYNLinux联盟
  设置ProMesh.ApplicationClass,注意value="Blog.Web.Application, Blog.Web",后面一个Blog.Web是程序集名称,不是namespace iYNLinux联盟
  <add key="ProMesh.ApplicationClass" value="Blog.Web.Application, Blog.Web"/> iYNLinux联盟
   iYNLinux联盟
  配置Application.cs代码 iYNLinux联盟
   1using System; iYNLinux联盟
   2using Activa.ProMesh; iYNLinux联盟
   3 iYNLinux联盟
   4 iYNLinux联盟
   5namespace Blog.Web iYNLinux联盟
   6{ iYNLinux联盟
   7 public static class Application iYNLinux联盟
   8 { iYNLinux联盟
   9 iYNLinux联盟
  10 public static void Init() iYNLinux联盟
  11 { iYNLinux联盟
  12 iYNLinux联盟
  13 } iYNLinux联盟
  14 } iYNLinux联盟
  15} iYNLinux联盟
  3.开始写Controller iYNLinux联盟
  所有的Controller都要继承PageController类,每个Controller都对应一个同名template,template默认放在templates目录下,例如我有一个indexController,在templates下应该有一个index.htm文件.框架默认要建一个master.htm,会应用到所有的Controller, iYNLinux联盟
  master.htm代码 iYNLinux联盟
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" iYNLinux联盟
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> iYNLinux联盟
  <html xmlns="http://www.w3.org/1999/xhtml"> iYNLinux联盟
   <head> iYNLinux联盟
   </head> iYNLinux联盟
   <body> iYNLinux联盟
   $[_VIEW_] iYNLinux联盟
   </body> iYNLinux联盟
  </html> iYNLinux联盟
  $[_VIEW_],即是要替换的内容 iYNLinux联盟
   iYNLinux联盟
  login.cs iYNLinux联盟
   1using System; iYNLinux联盟
   2using System.ComponentModel; iYNLinux联盟
   3using Activa.ProMesh; iYNLinux联盟
   4using Activa.CoolStorage; iYNLinux联盟
   5using Blog.Domain; iYNLinux联盟
   6 iYNLinux联盟
   7namespace Blog.Web.Controllers iYNLinux联盟
   8{ iYNLinux联盟
   9 [Layout("u/blogmaster")] iYNLinux联盟
  10 [Url("u/blog")] iYNLinux联盟
  11 public class blog : BaseController iYNLinux联盟
  12 { iYNLinux联盟
  13 public void Run(int uid) iYNLinux联盟
  14 { iYNLinux联盟
  15 BlogUser user = BlogUser.Read(uid);//当前用户 iYNLinux联盟
  16 iYNLinux联盟
  17 CSParameterCollection param = new CSParameterCollection(); iYNLinux联盟
  18 param.Add("@uid",uid); iYNLinux联盟
  19 iYNLinux联盟
  20 CSList<BlogCate> cates = BlogCate.List("Uid=@uid",param).OrderedBy("CateId");//分类数据 iYNLinux联盟
  21 iYNLinux联盟
  22 CSList<BlogPost> posts = BlogPost.List("UserId=@uid","@uid",uid).OrderedBy("PostId");//日志数据 iYNLinux联盟
  23 posts.ApplySort(posts.SortProperty, ListSortDirection.Descending);//排序 iYNLinux联盟
  24 iYNLinux联盟
  25 ViewData["cates"] = cates; iYNLinux联盟
  26 ViewData["posts"] = posts; iYNLinux联盟
  27 ViewData["user"] = user; iYNLinux联盟
  28 } iYNLinux联盟
  29 } iYNLinux联盟
  30} iYNLinux联盟
  31 iYNLinux联盟
  上面是我的loginController,刚才说了默认所有Controller应用master.htm模版,这里通过[Layout("u/blogmaster")]重新指定新的母版页,即templates/u/blogmaster.htm文件,[Url("u/blog")]即指定访问地址,这里地址是u/blog.ashx. 上面说了,每个Controller对应同名的template,可以定义 iYNLinux联盟
  [View("u/blog")]自己指定view模版 iYNLinux联盟
  Run是Controller的入口,使用ViewData["posts"]向模版传递变量,下面是模版代码 iYNLinux联盟
   iYNLinux联盟
  posts是一个IList,所以这里 iYNLinux联盟
  <!--$[foreach post in posts]--> iYNLinux联盟
  <!--$[endfor]--> iYNLinux联盟
  进行遍历输出数据,上面就是模版引擎的语法。还是很简单的。和monorails有点区别,也容易理解 iYNLinux联盟
   iYNLinux联盟
  <div id="columnwrap"> iYNLinux联盟
   iYNLinux联盟
  <div id="content-main"> iYNLinux联盟
   iYNLinux联盟
  <h1>$[user.UserName]的博客</h1> iYNLinux联盟
  <h2 class="deck"><!--博客介绍--></h2> iYNLinux联盟
   iYNLinux联盟
   iYNLinux联盟
  <!--$[foreach post in posts]--> iYNLinux联盟
  <h2> iYNLinux联盟
   <a href="~/u/showinfo.ashx?id=$[post.PostId]">$[post.Title]</a> [$[post.Cate.CateName]] iYNLinux联盟
  </h2> iYNLinux联盟
  <p class='date'>发布于$[post.PostDate] <a href="~/u/blog.ashx?uid=$[post.User.UserId]">$[post.User.UserName]</a> <a class="rss" href="#">RSS</a></p> iYNLinux联盟
  <div> iYNLinux联盟
  <p> iYNLinux联盟
  $[post.Summary] iYNLinux联盟
  </p> iYNLinux联盟
   iYNLinux联盟
  </div> iYNLinux联盟
  <p class="small"><a href="~/u/showinfo.ashx?id=$[post.PostId]">阅读全文 »</a></p> iYNLinux联盟
  <!--$[endfor]--> iYNLinux联盟
   iYNLinux联盟
  <div id="content-secondary" align="center"> iYNLinux联盟
   </p> iYNLinux联盟
   页数 iYNLinux联盟
   </p> iYNLinux联盟
  </div> iYNLinux联盟
  </div> iYNLinux联盟
  <!-- END #content-main --> iYNLinux联盟
  <div id="content-related" class="sidebar"> iYNLinux联盟
  <!--$[render "../../templates/u/menu.htm"]--> iYNLinux联盟
  </div> iYNLinux联盟
   iYNLinux联盟
  这样一个基本的例子就可以运行了。里面还有很多细节的使用。我在例子中一种效果都使用了多种方法来测试,可以看看例子的使用 iYNLinux联盟
   iYNLinux联盟
   iYNLinux联盟
   iYNLinux联盟
   iYNLinux联盟
  数据库建表文件在DataBase目录里 iYNLinux联盟
  数据库连接在Global.cs文件里个性 iYNLinux联盟
   if (!CSConfig.HasDB()) iYNLinux联盟
   { iYNLinux联盟
   CSConfig.SetDB(new CSDataProviderSqlServer("Server=.;Database=NewBlog;UID=sa;PWD=;")); iYNLinux联盟
   }基本就可以运行了 iYNLinux联盟
Linux联盟收集整理 ,转贴请标明原始链接,如有任何疑问欢迎来本站Linux论坛讨论
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
无相关信息