本系列文章基于ASP.NET MVC Preview5.
view在MVC模式中与用户进行最直接的接触,它负责数据的呈现。这里要注意一点就是,view只是负责数据的呈现,所以我们应该要尽量让
view中不涉及业务逻辑的处理。
我们来添加一个Blog首页的view。在安装了ASP.NET MVC后,我们在添加新项目的时候可以看到有MVC的view模板:
注:如果你的是中文版
的VS,安装完后可能会出现找不到这个模板的现象,你可以参考
在中文版VS 08中安装MVC
这篇
文章设置一下。
其中MVC View Content Page是有母版页的。我们在Views/Home目录下添加一个MVC View Content
Page,并选择我们Views/Shared目录下的Site.Master母版页:
public
partial
class
Index : ViewPage
{
}
ASP.NET
MVC默认是使用WebForm来作为view的。所以我们看到新建的aspx页面继承自ViewPage,如果使用aspx页面作为ASP.NET
MVC的视图引擎,则所有的aspx页面都必须继承自ViewPage。我们再看一下ViewPage:
我们看到ViewPage继承自ASP.NET
WebForm的Page页,还实现了IViewDataContainer接口,同时还提供了一些Helper类的实例。我们可以使用ViewData
来从Controller中往view页面中传递 ......
测试的url地址是http://www.test.com/testweb/default.aspx, 结果如下:
Request.ApplicationPath: /testweb
Request.CurrentExecutionFilePath: /testweb/default.aspx
Request.FilePath: /testweb/default.aspx
Request.Path: /testweb/default.aspx
Request.PathInfo:
Request.PhysicalApplicationPath: E:\WWW\testweb\
Request.PhysicalPath: E:\WWW\testweb\default.aspx
Request.RawUrl: /testweb/default.aspx
Request.Url.AbsolutePath: /testweb/default.aspx
Request.Url.AbsoluteUri: http://www.test.com/testweb/default.aspx
Request.Url.Host: www.test.com
Request.Url.LocalPath: /testweb/default.aspx ......
这里是我的一个简单的jquery+json的连库操作,只是一个简单查询,
//后台代码
<%@ WebHandler Language="C#" Class="show" %>
using System;
using System.Web;
using System.Collections.Generic;
using Model;
using DAL;
using System.Web.Script.Serialization;
public class show : IHttpHandler {
public void ProcessRequest (HttpContext context) {
JavaScriptSerializer serializer=new JavaScriptSerializer();
//调用后台方法
IList<test> tt = testservice.getalltest();
//序列化
string date= serializer.Serialize(tt);
context.Response.ContentType = "text/plain";
......
系统简单介绍:
很标准的配置:asp.net 2.0+SqlServer 2000 or 2005,一些统计图采用的是flash技术~刚毕业的时候在一家电子政务公司工作时开发的,这套系统强就强在它不是应用系统,而是一个工具,可以在此工具基础上,经过二次开发,衍生出满足政府部门信息化需求的应用系统!!
这是我第一份工作带给我最大的收获,不是编码,是这套系统的设计~使用这个工具,公司在开发每个项目的时候都只需要把精力放在不同政府部门的特定需求上,然后很迅速就可以将各种应用系统开发出来~法院 人力保障局 外经委等各种部门的办公, 信息管理,工作流等都可以满足!
我学习了这个工具的设计,狠狠地消化并吸收到自己大脑,目前我正在尝试将此设计用不同的技术实现出来~~嘎嘎!!
主要功能:
其实跟很多工具或系统的功能基本类似的,一般系统就这几部分:
(1)用户组和用户管理
定义了不同角色,特定角色有特定权限,用户属于某个组就具有了该组的权限。这在政府部门中很重要,大家都知道政府部门中行政级别化的相当专业哦~至少领导使用该系统让他看看汇总数据 ......
System.Drawing.Image imgPhoto = System.Drawing.Image.fromFile("图片路径名");
int sourceWidth = imgPhoto.Width; //图片宽度
int sourceHeight = imgPhoto.Height; //图片高度
控件名.PostedFile.ContentLength //获取空间大小返回 Integer 字节
......
当我们想要从网上下载文件时,通常的做法是在服务器上的某个目录下生成一个文件。
protected void DownloadFile(string filename)
{
string saveFileName = "test.xls";
int intStart = filename.LastIndexOf("\\") + 1;
saveFileName = filename.Substring(intStart, filename.Length - intStart);
Response.Clear();
Response.Charset = "utf-8";
Response.Buffer = true;
this.EnableViewState = false;
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.AppendHeader("Content-Disposition", "attachment;filename=" + saveFileName);
Response.WriteFile(filename);
Response.Flush();
Response.Close();
Response.End();
}
但会存在这样的情况,直接从数据库中下载图片。
其实原理很简单。就是用MemoryStream代替FileStream。有一点需要注意就是http头的格式要设置正确。 byte[] pic = //从数据库返回的图片
MemoryStream ms = new MemoryStream(pic);
System.Drawing.Image ......