ASP.NET MVC5 入门四——添加模型

在本节中,我们将要添加一些类来管理数据库中的信息。MVC入门系类的文章打算建立一个电影网站的示例。在前几篇的博客《Entity Framework学习——了解》,我介绍了新的编程方式 Code First 。所以我们应该添加一些类来作为MVC中的“模型”部分。

添加模型类

在解决方案资源管理器中,右键单击 Models 文件夹,选择添加,然后选择类:

image

输入类名“Movie”。

向类“Movie”添加以下5个属性:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MVC5DEMO.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }
}

从上面的代码可以看出,这个就是用类(class)来表示数据库中的电影(电影数据信息)。类的每个实例对应着数据库中的每行,类的属性对应着数据库中的每列。

在Movie中继续添加代码,我们添加一个 MovieDBContext 类:

image

可以看出,MovieDBContext 继承至 DbContext 。我们需要应用Entity,可以手动加入以下的using System.Data.Entity;语句或者像上图那样,在红色错误处右键选择解析,然后自动添加引用。我们也会发现,有些应用我们不需要,按照下图方式清除未使用的using语句:

image

using System;
using System.Data.Entity;

namespace MVC5DEMO.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }

    public class MovieDBContext:DbContext
    {
        public DbSet Movies { get; set; }
    }
}

上面就是最终的代码,清爽许多。这也是我喜欢.NET 胜过JAVA的原因,有个强大的IDE。非常方便,使用起来容易上手。对于中小企业,快速的开发出合格产品才是王道!

下一节:添加数据库连接字符串和LocalDB

ASP.NET MVC5 入门三——添加视图

在上一篇《ASP.NET MVC5 添加控制器》里面我们都是直接返回string 字符串或者html 。这样的话控制器不仅仅做了控制器的工作还做了VIEW(视图)的工作。通常我们不希望控制器直接返回HTML,因为那样子复杂的页面就会非常繁琐,所以我们通常会用一个单独的视图模板文件来辅助生产对应的html响应报文返回客户端。

接下来我们就来看看如何添加视图,先修改上篇博客的那个例子,我们来修改HelloWorldController类,这样才能让view的模板文件来封装要返回的html响应报文。

image

首先,创建一个视图文件夹 HelloWorld 。右键单击(view)——》添加——》新建文件夹。

image

注意名字一定要是 HelloWorld 因为控制器名字是 HelloWorldController 控制器必须是Controller结尾,视图文件夹的名字必须和控制器除了结尾的部分一样。也就是“约定优于配置”的理念。

image

接下来添加一个支架,选择 MVC5 视图—空 不带模型

image

点击添加,弹出的对话框把视图名字(View name)改为 Index 。其他保持默认然后确定。

image

可以看到多了一个 Index.cshtml的文件。在上面的</h2>后面添加如下的html代码:

<p>这是一个View模板,来自于:HelloWorld下面的Index视图!</p>

然后在index.cshtml文件上面右键,选择在页面检查器中查看。当然也可以按下F5进行运行,在浏览器地址栏输入地址进行查看。

image

但浏览器的地址发到服务器的时候,服务器解析给控制器,然后控制器里面只有一句 return View()语句,指定返回一个视图模板文件给浏览器,我们没有写指定什么名字的视图,默认就是Index。

继续阅读“ASP.NET MVC5 入门三——添加视图”

ASP.NET MVC 5 入门二 ——添加控制器

什么是MVC?MVC就是 Models 模型,Views 视图,Controllers 控制器。MVC虽然分为3个部分,但是和三层没有关系,是一种用来开发应用程序的模式具有良好的架构,易于维护和测试。

  • Models:可以理解为是对应用程序的状态、数据以及业务功能的封装。
  • Views:用来显示和用户进行交互的HTML页面。(界面的显示和互动)
  • Controllers:处理传入的请求,完成相应的UI逻辑调用Model里面的相应业务。

下面让我们添加一个控制器类,在资源管理器 项目里面的Controllers 右击。

image

image

接下来去个名字吧,第一个实例一般都喜欢用 helloworld 。

image

我们把代码改成如下,直接返回string字符串在浏览器窗口。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MVC5DEMO.Controllers
{
    public class HelloWorldController : Controller
    {
        //
        // GET: /HelloWorld/
        public string Index()
        {
            return "这是HelloWorld默认的一个动作(action)";
        }

        //GET:/HelloWorld/Welcome/
        public string Welcome()
        {
            return "这是Welcome的 action 方法";
        }
	}
}

按下F5,在默认的网页地址后面加上Helloworld,如下图:

image

一回车,就会看到我们刚才写的字符串显示在页面上。

ASP.NET MVC 会根据传入的URL调用不同的控制器类(上面例子的HelloWorld)以及里面不同的方法(上面例子的Index、Welcome)。具体依据什么来判断调用的是哪个控制器,哪个方法在App_Start/RouteConfig.cs 文件里面设定。

image

如果直接访问域名,会默认调用 defaults里面的 Home控制器下面的Index方法,后面的ID是传入的参数等数据后面会介绍。

image

所以刚才我们浏览的地址:http://locahost:xxxx/HelloWorld/Welcome MVC默认的映射来解析的话控制器是 HelloWorld ,调用的方法是:Welcome 没有ID这个参数。接下来我们修改为以下代码:

//GET:/HelloWorld/Welcome/
        public string Welcome(string name , int age = 18)
        {
            return HttpUtility.HtmlEncode( "欢迎"+name+",您的年龄是:"+age) ;
        }

给Welcome 方法传入2个参数,年龄默认是18 。接下来我们看看运行结果。

image

以前要获得GET方法传入的参数,需要写一句代码(request),现在MVC自动的帮我们绑定了,多方便!接下来我们把上面的那个代码中的age改成ID,浏览器地址后面添加 /3?name=yan

image

这次的Welcome后面加上了/3 刚好匹配到了ID,剩下的就匹配到了name这个参数。按照这个思路,是不是有办法让地址栏直接匹配到name,这样url里面就没有 ? 这个符号。

我们在App_start\RouteConfig.cs里面添加一个试试:

image

当然,默认的路由规则大多数情况下是很合适的,不需要去修改。接下来会介绍模型绑定,这样就不需要修改路由规则了。

下一步学习:添加视图(View)

ASP.NET MVC 5 入门一——简介、下载安装

本系类教程将要构建ASP.NET MVC 5 Web 应用程序,使用的工具是VS2013 。现在有预览版可以下载了,点击下载VS2013 FOR WEB ISO文件。VS2012 还没用几天呢,2013就要出来,据说数据库有SQL2014的版本了。不带这么玩的!!!

Go

安装完VS2013 for Web 后,打开在起始页(start page)选择新建项目。

image

image

可以发现和VS2012最大的不同,WEB里面只有一个选择,确定后接下来才开始选择其他的:

image

VS2012 还有MVC3 MVC4选择,在VS2013没得选。好了,创建项目后,我们直接按下F5运行。

image

好了,一个网站OK了。拥有 首页、关于、联系方式等页面。更NB的是注册登录也有了。

image

查看了下网页源代码,前端用的是大名鼎鼎的 bootstrap。有时间会专门写这个系类的文章。

下次更新:添加控制器

云中行走——观后感

看完这部电影,还是很有感触的。原因也有和上周刚刚参加完公司的文化培训有光。

文化培训呢,就不具体说了,但是其中关于目标的设定,设定目标的原因看完这部电影更有感触了。主人公小时候看到马戏团表演走钢丝就瞬间喜欢上,但是那时候还没有多远大的目标估计也就马戏团那样的钢丝走一下。一个巧合看到报纸上关于双子楼的描述(世界最高)瞬间就树立了一个目标——我要在双子楼之间走钢丝!而且这个目标是清晰的,远大的(当时来看前无古人),深深印在脑海里的。

企业经营哲学里面关于目标的一句话:乐观构想,悲观计划,乐观执行。在这部电影体验的淋淋尽致!而且主人公一步一步实现这个梦想,先从两棵树的高度开始走钢丝,慢慢变成小塔,在最后的世界高楼。计划的过程也是考虑了很多困难,向有经验的老者请教,最后实施执行的时候遇到各种想不到的问题也能有信心去坚持、相信自己能成功。

另外还有感触的一点是,关于女主人的,和 i do 的广告片段一样,女人放弃了自己的理想成全能男人,可惜男人都不会去好好珍惜。

云中行走真实的事情对比

搭建阿里云VPN解决icloud云备份问题

最近一直有提示,说什么本手机有几星期没有备份了,接入无线插入电源锁屏后会自动备份。每晚不都是这样嘛。。。还是备份不了,上威锋看了下发现是墙的问题。有人用搭建VPN解决了。找了几个免费的不稳定,突然想到阿里云有香港,美国等服务器而且可以按照使用时间付费,就花了几块钱试试能不能备份。

ecsgm

按照这个配置,一小时不到3快钱。还是有点贵。。。

开通后,登陆终端。

请参考以下步骤:

继续阅读“搭建阿里云VPN解决icloud云备份问题”