.net mvc项目搭建及注意事项

一、首先新建项目:

选择web项目---》选择asp.net mvc 3应用程序

image

二、选择项目模板:

空 表示只有一个mvc框架的目录结构的应用程序,

Internet应用程序 是一个带有使用窗体身份验证的帐户控制器的默认 ASP.NET MVC 3 项目。(也就是事例项目,初学着建议选择此项,因为里面包含了许多微软的标准及很规范的例子)

image

三、选择视图引擎

默认为Razor (有些网站翻译为剃刀)也建议使用此引擎,它跟aspx引擎最大的区别是@代替了<%%> 更为简洁,它能最大限度地减少在一个文件中所需的字符和按键的数量,使快速,流畅的编码工作流程,不像大多数模板语法,你不需要打断你的编码,明确表示在你的HTML服务器块。解析器是足够聪明的推断,从你的代码。这使得这是一个非常紧凑和表达语法干净,速度快,输入的乐趣。

Aspx引擎,没什么好说的,大家对它并不陌生。

image

四、选择是否创建单元测试项目

image

五、框架目录结构:

image

目录中controllers为控制层处理各种请求、页面跳转、错误处理等业务。最好不要修改该文件夹名称。

View为视图目录,

shared为共享目录,也就是当controller对应的view目录中找不的对应的视图,将在shared中查找。Shared一般存放母板视图,公用部分页视图(也就相当aspx中的用户控件)

Home文件夹一般是存放网站首页controller目录,(当然也可以存放在其他位置,但不建议)

View目录下的子目录通常是不用手动去添加的。当我们建立controller里的action的时候会自动为我们添加(下面会提到);

image

除这两个之外其他的目录都可以根据业务来添加或者修改,值得一提的是,通常我们写一些页面级的逻辑可以写在models目录下面,相当于app_code目录。为了方便调用,我们会通常去掉生成的命名空间。如:

image

我们会去掉 namespace mvcdemo.Models

Content 目录我们通常会修改为Css,Scripts会修改为js

Global.asax 文件比较重要,通常我们的路由是保存在这个文件里面。

image

这是一条默认的路由,正如上面所说的,如果我们的默认主页不是home/index那么我们就需要在这里修改。

在实际应用中我们可以根据我们的业务要求来修改里面的内容。(灵活掌握和运用会得到非常神奇的效果。)

特别注意的是,自定义路由,必须是在默认路由之前。

六、母版页

我们缩减一下标签

image

按照约定:ViewBag.Title是文件的标题

@RenderSection("Header",false)、@RenderSection("Footer",false) 这是为了美化我们的代码而写的头和交嵌入脚本域(在后面会讲到)

@RenderBody() 子页内容

当然我们可以在这里添加一些用户的登录信息、页首、页脚之类的公用内容

七、部分页

image

我们打开可以看到只有内容,没有其他的标签,

部分页的页面引用:@Html.Partial("_LogOnPartial")

Action 响应部分页:

image

更为神奇的是我们的部分页可以很方便第使用页面缓存,而不影响全局页面。

image

八、新建controller

在controllers目录右键—》添加—》控制器

image

image

我们可以看到,微软会给我们自动添加Controller后缀,选中部分是我们的控制器名称。

可以根据我们的业务来命名,要求是有意义的英文单词,首字母大写。

我们输入Admin确定后会添加一个cs文件AdminController

image

默认添加一个Index的 Action方法 我们添加视图是在方法的右键点击添加视图

image

红线部分默认即可

创建强类型视图(可选)

创建部分视图选项 ---也就是部分页视图。不带母板,不带html头尾标签。一般为用户控件。嵌入特定的页面区域中。

使用布局或母版页----也就是创建一个引用母版的部分页

image

红线内容不选为默认模版,也就是views-shared _Layout.cshtml

image

如果有多个母版页,而又不是默认母版,那当然需要选择啦。

确定后:

会生成以下代码:

image

@model mvcdemo.Models.LogOnModel为选择了《创建强类型视图》的结果

通常会在添加,编辑,或者单个model内容显示使用。

用法:

@Model.UserName 输入LogOnModel里面的UserName属性

代码块:ViewBag.Title为页的标题名称(默认的,可以修改,)

image

image

我们最终在源代码中可以看到:

image

也就是头部归头部,脚部归脚部,不会过于凌乱。

九、错误页

image

image

image

十、model与表单

image

这是属性配置模式的model是配合ui验证而使用的。功能很强大,但也有局限性。

一般我不用这个。有兴趣的好可以去微软官网学习。

我们在处理表达提交问题的时候,

可以采用传统的

string name= Request["name"];

image

可以采用Model作为参数

但这样的前提是:

image

表达标签的 name必须是model的属性名称

这样我们可以省去了许多代码。

十一、注意事项

1、在页面中model是关键字,不可以定义model为变量名。

2、Razor引擎默认是转码格式输出,

image

而他的输出内容是:

image

源码:

image

页面:

image

3、如果我们需要展示原来的内容,Html.Raw() 输入方法

image

image

页面源码:

image

页面显示:

image

十二、结束

到此,net mvc 的基本内容已经完成,需要更深入的了解,如权限控制,扩展路由,路由过滤,等等,请到博客园,或者谷歌去找答案吧。

转载于:https://my.oschina.net/zhangdayue/blog/112021

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值