1、MVC原理图:
2、MVC项目文件夹说明
MVC项目文件夹说明
1)、App_Data:用来保存数据文件,比如XML文件等
2)、App_Start:包含MVC启动的相关类 RouteConfig.cs 路由配置
3)、Global.asax.cs全局应用程序控制文件 启动路由配置RouteConfig.cs
4)、Controller:存放整个项目“控制器”代码文件
5)、Models:存放整个项目的“模型”代码文件
6)、Views:存放整个项目的“视图”代码文件(网页/界面)
重要文件说明
1)、Views下面的web.config:是整个视图的配置文件;根目录下的web.config:作用于整个项目的配置
2)、Global.asax.cs全局应用程序控制文件
3、MVC中的约定:
视图访问和寻址规则
1)、在控制器中使用View()方法调用视图,返回和“动作方法同名”的视图
2)、寻址规则:View()方法默认从“View文件夹”下寻找和控制器同名的文件夹
MVC中的约定
1)、控制器:必须以Controller结尾
2)、视图:必须放在Views文件夹下,并且要和控制器同名的子目录中创建
约定胜于配置
1)、提前规定好
2)、无需配置
3)、不遵守规则则出错
4、控制器和动作方法任务分析
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;//ASP.NET核心命名空间
using System.Web.Mvc;//MVC框架基本的命名空间
namespace MyFirstMVC.Controllers
{
public class HomeController : Controller//每个控制器必须继承的基类
{
// GET: Home
//控制器的动作方法,用于响应客户端的请求,并调用响应的视图向浏览器输出信息
public ActionResult Index()
{
//[1]获取数据:接收请求数据
//[2]业务处理:和Model交互...
//[3]返回视图或跳转到其他控制器
return View();//该方法默认调用Index视图(与Index()方法同名的视图)
}
}
}
///
//
以及C# 关于MVC框架的简单实例(计算器)
一、需求分析
实现效果
二、实现步骤
步骤一:新建项目--->Web---->空模板
步骤二:添加控制器
步骤三:根据控制器名称添加视图
步骤四:添加Models模型 编写具体的方法
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace MVCDemo.Models
{
public class Calculator
{
public int getAVG(int sumScore,int sumSubject)
{
return sumScore / sumSubject;
}
}
}
步骤五:编写视图,具体展示的内容
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>CalculatorView</title>
</head>
<body>
<form method="post" action="/Calculator/Calculate">
计算平均成绩<br/>
总成绩:<input type="text" name="sumScore" /> <br/>
总科目:<input type="text" name="sumSubject" /><br/>
<input type="submit" value="开始计算"/><br/>
@ViewData["avgScore"]
</form>
</body>
</html>
步骤六:编写控制器活动方法
using MVCDemo.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MVCDemo.Controllers
{
public class CalculatorController : Controller
{
// GET: Calculator
public ActionResult Index()
{
return View("CalculatorView");
}
public ActionResult Calculate()
{
//[1]获取数据
int sumScore = Convert.ToInt32(Request.Params["sumScore"]);
int sumSubject = Convert.ToInt32(Request.Params["sumSubject"]);
//[2]处理数据
Calculator objCal = new Calculator();
int avgScore = objCal.getAVG(sumScore, sumSubject);
//[3]返回数据
ViewData["avgScore"] = "平均成绩为:" + avgScore;
return View("CalculatorView");
}
}
}
步骤七:修改路由
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
namespace MVCDemo
{
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Calculator", action = "Index", id = UrlParameter.Optional }
);
}
}
}