文章的目的为了记录.net mvc学习的经历。本职为嵌入式软件开发,公司安排开发文件系统,临时进行学习开发,系统上线3年未出没有大问题。开发流程和要点有些记忆模糊,赶紧记录,防止忘记。
相关链接:
开源 C# .net mvc 开发(一)WEB搭建_c#部署web程序-优快云博客
开源 C# .net mvc 开发(二)网站快速搭建_c#网站开发-优快云博客
开源 C# .net mvc 开发(三)WEB内外网访问-优快云博客
开源 C# .net mvc 开发(四)工程结构、页面提交以及显示-优快云博客
开源 C# .net mvc 开发(五)常用代码快速开发_c# mvc开发-优快云博客
开源 C# .net mvc 开发(六)发送邮件、定时以及CMD编程-优快云博客
开源 C# .net mvc 开发(七)动态图片、动态表格和json数据生成-优快云博客
开源 C# .net mvc 开发(八)IIS Express轻量化Web服务器的配置和使用-优快云博客
推荐链接:
开源 java android app 开发(一)开发环境的搭建-优快云博客
开源 java android app 开发(二)工程文件结构-优快云博客
开源 java android app 开发(三)GUI界面布局和常用组件-优快云博客
开源 java android app 开发(四)GUI界面重要组件-优快云博客
开源 java android app 开发(五)文件和数据库存储-优快云博客
开源 java android app 开发(六)多媒体使用-优快云博客
开源 java android app 开发(七)通讯之Tcp和Http-优快云博客
开源 java android app 开发(八)通讯之Mqtt和Ble-优快云博客
开源 java android app 开发(九)后台之线程和服务-优快云博客
开源 java android app 开发(十)广播机制-优快云博客
开源 java android app 开发(十一)调试、发布-优快云博客
开源 java android app 开发(十二)封库.aar-优快云博客
开源 java android app 开发(十三)绘图定义控件、摇杆控件的制作-优快云博客
在前面3个章节里,完成了浏览器静态页面的显示、网站数据库的增删改查、最终内外网访问的办法。
本章主要的内容如下:
1.工程文件结构介绍
2.数据提交、页面显示
3.控制器和页面之间的变量传输
4.以上3个内容掌握后,基本就可以实现创建网站或Erp(B/S)。
一、工程结构
- 左边红框中AppData文件夹中为数据库文件。右边红框中为连接的数据库表,通过双击数据库表或者右键可以直接操作数据库。
- AppStart文件夹中 RouteConfig.cs为路由文件。图中间红框处可以设置服务器运行时的首页面。
- Controllers文件夹中为控制器文件,View文件夹中为视图文件。每个控制器文件与视图文件夹对应。
- Models文件夹中,Tables.cs为数据库表的模型,Model.cs连接上下文。数据库创建或修改后可以使用EF直接生成。
- Scripts文件夹中,多为脚本文件,前端的脚本通常放在这里。
- Views文件夹中,为视图页面。文件夹与控制器相互对应。share文件夹中的_Layout.cshtml比较特殊,这个视图在每个视图页面中都会有。
- Global.asax是ASP.NET Web应用程序的全局文件,它包含了应用程序级别的事件处理程序,允许开发人员在应用程序的生命周期中执行特定的逻辑。这个文件在应用程序启动时被自动调用,并且可以用于执行一系列的初始化操作以及事件处理。比如定时程序就可以放在该文件执行。
- Web.config为配置文件,数据库连接上下文就在此处。标红位置可以进行修改。
二、数据提交
比如创建数据项就是数据提交,仿真可以看到流程:我们点击创建页面(输入/Tables/Create),程序会跳转到TablesControl的Create()函数,将会返回 view(),将会显示Create.cshtml,在Create.cshtml页面中我们填入Name和Age,点击Create提交后,程序会跳转到Create([Bind(Include = "Id,Name,Age")] Table table)函数中实现数据的提交。
1.基于数据模型提交
Create.cshtml
TablesControl.cs
2.基于Form提交
Create.cshtml
TabelsControl
三、控制器之间的变量传输
在ASP.NET MVC中,页面间Controller与View之间主要有以下几种小量数据的传值方式:ViewData、ViewBag、TempData和Session变量。
Session是用的最多的,在整个会话期间会存在,这里只讲Session的赋值和获取。
控制器中Session["test"]赋值
cshtml中获取Session["test"]的值