使用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://files.cnblogs.com/bluedoctor/MvcApplication1.rar
由于是我第一次写MVC程序,所以同样适合对MVC想入门的朋友,另外,数据访问采用了PDF.NET数据开发框架,使得程序非常简单。为方便上传,示例程序删除了ASP.NET自带的成员数据库,对“新闻”程序的运行没有影响。
下面是本实例程序的运行截图: (列表界面)
(带一个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文件,看到下面的配置节:
<connectionStrings>
<add name="ApplicationServices"
connectionString="data source=.SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
<add name="default" connectionString="Data Source=.;Initial Catalog=TestDB;Integrated Security=True" providerName="SqlServer"/>
</connectionStrings>
修改 name="default" 相关的 connectionString 配置中的内容,为你第2步中创建表的数据库所在的连接字符串。
providerName="SqlServer" 为PDF.NET数据开发框架的数据提供程序。 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<NewsModel> q = new EntityQuery<NewsModel>();
q.Insert(nm);
return nm.ID>0;
}
public static List<NewsModel> GetAllNews()
{
OQL q = OQL.From(new NewsModel()).Select().END;
return EntityQuery<NewsModel>.QueryList(q);
}
public static NewsModel GetNews(int newsID)
{
NewsModel nm = new NewsModel();
nm.ID = newsID;
EntityQuery<NewsModel>.Fill(nm);
return nm;
}
public static bool EditNews(NewsModel news)
{
EntityQuery<NewsModel> q = new EntityQuery<NewsModel>();
int count=q.Update(news);
return count > 0;
}
public static bool DeleteNews(NewsModel news)
{
EntityQuery<NewsModel> q = new EntityQuery<NewsModel>();
int count = q.Delete(news);
return count > 0;
}
}
}
由于操作数据非常简单,我就不详细说明了,有关PDF.NET的详细信息,请看这里。
- activiti-explorer部署笔记
- 没有准考证号我是如何暴力查询英语六级成绩的
- asp.net web api 2.2 基础框架(带例子)
- 走近科学:如何一步一步解码复杂的恶意软件
- OpenAI 开源机器人模拟 Python 库:优化API接口提升400%处理速度
- 远控木马上演白利用偷天神技:揭秘假破解工具背后的盗刷暗流
- 设计模式学习(三): 装饰者模式 (附C#实现)
- 浅谈非PE的攻击技巧
- hbase源码系列(十)HLog与日志恢复
- hbase源码系列(六)HMaster启动过程
- 如何写好一篇漏洞报告(国外篇)
- hbase源码系列(八)从Snapshot恢复表
- hbase源码系列(七)Snapshot的过程
- CVE-2017-3085:Adobe Flash泄漏Windows用户凭证
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python文件处理实用指南
- 2. Pandas系列 - Series基本功能
- 1.3 广告算法专题 - 交叉验证
- 最好用的内网穿透工具合集
- JVM垃圾回收之垃圾回收器,程序员必须掌握的知识
- 5分钟Flink - 时间与语义案例详解
- 5分钟Flink - 时间语义和Watermark
- 3. Pandas系列 - DataFrame操作
- 4. Pandas系列 - 基本功能和统计操作
- 面经手册 · 第8篇《LinkedList插入速度比ArrayList快?你确定吗?》
- 无所不能的Embedding 2. FastText词向量&文本分类
- 5. Pandas系列 - 重建索引
- 6. Pandas系列 - 迭代
- Java 虚拟机基础原理:功能,内存管理,类的加载机制,分析字节码执行过程
- Stack有性能问题?推荐用ArrayDeque队列!队列是什么?什么是双端队列、延迟系列、阻塞队列,全是知识盲区!