MVC基础语法


文章目录


项目地址

复制代码
  • 所用到的框架和插件:

    .net

一、MVC的传值方式

1.1 ViewBag和ViewData传值

1.1.1 ViewBag

  • 临时存储,且不能跨页面和跨视图传递
  1. 在controller里传递数据
cs 复制代码
public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewBag.Message = "Welcome to ASP.NET MVC!";
        ViewBag.CurrentDate = DateTime.Now.ToString("yyyy-MM-dd");
        return View();
    }
}
  1. 在View页面使用
html 复制代码
<!DOCTYPE html>
<html>
<head>
    <title>@ViewBag.Title</title>
</head>
<body>
    <h1>@ViewBag.Message</h1>
    <p>Today's date is: @ViewBag.CurrentDate</p>
</body>
</html>

1.1.2 ViewData

  1. Controller
cs 复制代码
public class HomeController : Controller
{
    public ActionResult Index()
    {
        ViewData["Message"] = "Welcome to ASP.NET MVC!";
        ViewData["CurrentDate"] = DateTime.Now.ToString("yyyy-MM-dd");
        return View();
    }
}
  1. View
html 复制代码
<!DOCTYPE html>
<html>
<head>
    <title>@ViewData["Title"]</title>
</head>
<body>
    <h1>@ViewData["Message"]</h1>
    <p>Today's date is: @ViewData["CurrentDate"]</p>
</body>
</html>

1.2 视图模型传值(ViewModel)

1.使用Action的View()方法传递视图模型,传递什么类型,View里就是什么类型

cs 复制代码
public class ProductController : Controller
{
    public IActionResult Index()
    {
        // 创建一个产品列表
        var products = new List<ProductViewModel>
        {
            new ProductViewModel { Id = 1, Name = "Laptop", Price = 1200.50, Category = "Electronics" },
            new ProductViewModel { Id = 2, Name = "Phone", Price = 800.00, Category = "Electronics" },
            new ProductViewModel { Id = 3, Name = "Tablet", Price = 300.00, Category = "Electronics" }
        };
        // 将列表传递到视图
        return View(products);
    }
}
  1. 在View里使用,小写model 并且需要根据类型来取值
html 复制代码
@model List<ProductViewModel>

<tbody>
    @foreach (var product in Model)
    {
        <tr>
            <td>@product.Id</td>
            <td>@product.Name</td>
            <td>@product.Price</td>
            <td>@product.Category</td>
        </tr>
    }
</tbody>

注意:①如果IActionResult 返回的是明确的类型,如类,或者集合,他就会默认View视图里;②如果传递的是其他的路由,他就会跳转到其他路由

二、HttpConntext上下文

在mvc中,但凡要创建对象,优先考虑从容器中拿对象,这样不用考虑他的创建过程需要什么参数

只有在创建Model层的时候,才考虑直接New一个对象出来

三、中间件

  • 中间件是一个从发起请求到返回结果的过程,所以,所有的请求都是通过中间件,参与完成的。
相关推荐
王有品5 小时前
Spring MVC 模型数据绑定:addAttribute 与 put 方法详解
java·spring·mvc
axinawang20 小时前
Spring Boot管理Spring MVC
spring boot·spring·mvc
王有品3 天前
Spring MVC 全栈指南:RESTful 架构、核心注解与 JSON 实战解析
spring·mvc
卡尔曼的BD SLAMer4 天前
问题 | 针对SSM(Spring + Spring MVC + MyBatis)框架的去Spring MVC强化版学习路线
java·spring·mvc·mybatis
peiwang2454 天前
网页制作中的MVC和MVT
后端·mvc
Alt.95 天前
SpringMVC基础二(RestFul、接收数据、视图跳转)
java·开发语言·前端·mvc
爱的叹息5 天前
spring mvc 在拦截器、控制器和视图中获取和使用国际化区域信息的完整示例
java·spring·mvc
爱的叹息6 天前
Spring MVC 重定向(Redirect)详解
java·spring·mvc
隔壁小查6 天前
【后端开发】Spring MVC阶段总结
python·spring·mvc
Alt.97 天前
SpringMVC基础一(SpringMVC运行原理)
数据库·spring·mvc