初探ASP NET MVC Web Application
1. 使用Visual Studio 2008,下载ASP.NET MVC Framework
2. 默认的ASP.NET MVC Project包括6个目录
Controls – 放置Controller 类,处理URL 请求。
Models – 放置业务实体类,表示和操作数据。
Views – 放置UI 模板文件,负责展示输出结果。
(MVC主要的目录)
Scripts – 放置Javascript 类库文件和.js 文件。
Contents – 放置CSS 和图像文件,以及其他非动态的、非Javascript 文件。
App_Data – 放置数据库文件。
Of course, you can change this folder structure, ie.Model into a separate dll.
3.Controllers and Views.
传统的Web Framework,都是把URL映射为文件(*.aspx).而MVC则是把URL映射到Controller Class的Method上。
Controller Class负责处理HTTP Request,检索用户输入,然后决定如何给客户响应。
4.如何理解ASP.NET MVC 的Routing
可以定制选择哪个Controller类,以及哪个方法,以及从URL/Querystring自动得到参数信息,并且传递给Method,并且路由信息
也是通过SEO(Search Engine Optimization)。
默认的路由信息在Global.asax的RegisterRoutes();
{
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL w/ params
new { controller="Home", action="Index",id="" } // Param defaults
);
}
URL的格式为:/{controller}/{action}/{id}.Action是Public Method.Controller Class, ID是Action的参数。
5. 把Controller和View分离,最大的好处是可以对应用程序的逻辑进行Unit testing.
public class XXXController : Controller
{
public ActionResult Index()
{
var dinners = GetDinners();
return new View("Index", dinners);
}
}
View方法的原型如下:
ViewResult View(string viewName, object model);
第一个参数是view模板文件,第二个参数是传递数据的Model 对象。
6. 在View中创建Hyper Link,两种方法,一种是传统的
<a href="Dinners/Details<%=dinner.id%">
第二种是ASP.NET MVC内置的html.ActionLink()方法
<%= Html.ActionLink(dinner.Title, "Details", new { id=dinner.DinnerID }) %>
第一个参数显示的内容,第二个参数是Controller的Action 方法,第三个参数是Action的参数。
相关文档:
index.asp文件 保存utf-8
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8" />
<form id="form1" name="form1" method="post">
<input name="ip" type="text" id="ip" style="width:170px" />
</form>
<mce:script type="text/javascript" src="ajaxrequest-m ......
前段时间读了不少关于MVC的文章,试着在ASP中应用了一下,发现对于小程序,代码量会大幅度增加,但是逻辑清晰,数据封装很合理,以前需要仔细规划的代码复用竟然成了理所当然的事情。
所谓MVC,即Model(模型),View(视图),Control(控制)三层架构。各部分各司其职,Model即底层构架,包含与数据库连接的部分,View ......
★1. 使用QueryString变量
QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子:
a.aspx的C#代码
private void B ......
ASP+Access数据库的18条安全法则:
1.首先,我们需要过滤所有客户端提交的内容,其中包括?id=N一类,另外还有提交的html代码中的操作数据库的select及asp文件操作语法,大家可以把提交的字符转义,然后再存入数据库。
2.然后需要对访问Access数据库的页面进行授权,针对显示数据页面只能使用select语句,过滤其他的update,asp ......
编者注:这个class主要用于操作asp中的xmlhttp。
首先是类定义 Cls_AspHttp.asp:
<%
''=================================================================
''飞扬远程获取类(AspHttp) 1.0.1 Bate1
'' By 奔腾的心
'' 2006-04-19
''=========================================================== ......