使用ASP.NET MVC2+PDF.NET 构建一个简单的新闻管理程序

    最近开始学习ASP.NET MVC技术,感觉跟原来的ASP.NET WebForm差异实在是太大了,看了2天的理论知识,才敢动手写一个实例程序。尽管是看的网上手把手的教程,如果不自己动手实践的话还是很难正真理解什么是MVC。
    在强调更好的Web用户体验前提下,程序员需要将UI的主要工作让步于美工设计人员,程序员的主要工作主要关注与后台逻辑开发,这种开发模式下,MVC无疑是最佳选择。
    ASP.NET MVC 已经从Ver1.0 升级到现在的Ver3.0了。我们的VS2010中默认集成了ASP.NET MVC2.0 ,本例程序就是使用它开发的,实例程序下载请到下面的下载地址:
http://download.csdn.net/source/2967926
http://download.csdn.net/source/2967852
下面是本实例程序的运行截图:
 

(列表界面)


 

(带一个jQuery 日历控件的编辑界面)

 

(查看详细界面)



示例程序的使用

1,首先,下载本实例程序,在VS2010中打开;
2,打开SQLSERVER企业管理器,找一个数据库,然后执行下面的创建表的脚本语句:

CREATE TABLE [Tb_News]( [ID] [int] IDENTITY(1,1) Primary Key NOT NULL, [Title] [varchar](100) NOT NULL, [CreateTime] [datetime] NULL, [Content] [varchar](2000) NULL, )
3,在VS2010中打开Web.config文件,看到下面的配置节:
修改connectionString 配置中的内容,为你第2步中创建表的数据库所在的连接字符串。

4,现在就可以按F5运行程序了,能够看到上面的运行界面。

示例过程



有关ASP.NET MVC的原理和“手把手”的示例过程,请看下面的博客,写得非常清楚:
Asp.net MVC2.0系列文章http://www.cnblogs.com/ywqu/category/250787.html

本实例程序使用了PDF.NET 数据开发框架,新闻数据的增,删,改,查非常简单,下面是实例代码:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using MvcApplication1.Models; using PWMIS.DataMap.Entity; namespace MvcApplication1.Service { public class NewsService { public static bool AddNews(AddNewsModel news) { NewsModel nm = new NewsModel(); nm.ID = 0; nm.Content = news.Content; nm.Title = news.Title; nm.CreateTime = news.CreateTime; EntityQuery q = new EntityQuery(); q.Insert(nm); return nm.ID>0; } public static List GetAllNews() { OQL q = OQL.From(new NewsModel()).Select().END; return EntityQuery.QueryList(q); } public static NewsModel GetNews(int newsID) { NewsModel nm = new NewsModel(); nm.ID = newsID; EntityQuery.Fill(nm); return nm; } public static bool EditNews(NewsModel news) { EntityQuery q = new EntityQuery(); int count=q.Update(news); return count > 0; } public static bool DeleteNews(NewsModel news) { EntityQuery q = new EntityQuery(); int count = q.Delete(news); return count > 0; } } }

由于操作数据非常简单,我就不详细说明了,有关PDF.NET的详细信息, 请看这里。
在MVC中使用ASP.NET图片控件
MVC中一般不推荐使用服务器控件,但哪些图表控件是一个例外。
假设有下面的视图页面:
<% //可以使用下面的方式引入用户控件: //Html.RenderPartial("ChartScore"); int[] arrScore = { 0 }; int.TryParse(Request.QueryString["Score"].ToString(), out arrScore[0]); string[] arrTotal = { " " }; this.cht_Score.Series["Series1"].Points.DataBindXY(arrTotal, arrScore); double[] arrPercent = { Model.GPXBILI.Value, Model.ZQXBILI.Value, Model.HBXBILI.Value }; string[] arrInvestArea = { "股票型", "债券型", "货币型" }; this.cht_Percent.Series["Series1"].Points.DataBindXY(arrInvestArea, arrPercent); this.cht_Percent.Series["Series1"]["CollectedThresholdUsePercent"] = "true"; %>
风险指数 基金配置比例(匹配风险测试类型)
以上是您的风险测试结果,请根据您的风险类型选择适合您的投资产品和投资组合 根据您的风险类型,您的标准基金配置比例应为:偏股型基金<%: String.Format("{0:F}", Model.GPXBILI) %>%,债券型基金<%: String.Format("{0:F}", Model.ZQXBILI) %>%,货币型基金<%: String.Format("{0:F}", Model.HBXBILI) %>%
向视图上拖ASP.Chart控件,会自动在Web.config文件中增加下面的内容:
最后,关键得在Global.asax里面写如下代码:
public static void RegisterRoutes(RouteCollection routes) { //此句无效 //routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( "Default", // 路由名称 "{controller}/{action}/{id}", // 带有参数的 URL new { controller = "Home", action = "Index", id = UrlParameter.Optional } // 参数默认值 ); } protected void Application_Start() { AreaRegistration.RegisterAllAreas(); //下面一句必须放到前面 RouteTable.Routes.Ignore("{*pathInfo}", new { pathInfo = @"^.*(ChartImg.axd)$" }); RegisterRoutes(RouteTable.Routes); }
这样就可以看到MVC中的图表控件了,下面是效果图:

你可能感兴趣的:(使用ASP.NET MVC2+PDF.NET 构建一个简单的新闻管理程序)