初探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 ......
文件头用了
<%@Language="VBScript" CodePage="65001"%>
文件本身已经是Utf-8的编码了
提交过到Access库中怎么都是 “产品介绍 ”这样的编码
一步步分析,不存库直接输出,也是这样的编码。想来跟Access无关了。
相于迷惑,后来重新建一个表单元,提交 ......