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一个对象出来

三、中间件

  • 中间件是一个从发起请求到返回结果的过程,所以,所有的请求都是通过中间件,参与完成的。
相关推荐
艾菜籽14 小时前
SpringMVC练习:加法计算器与登录
java·spring boot·spring·mvc
程序员小凯15 小时前
Spring MVC 多租户架构与数据隔离教程
spring·架构·mvc
艾菜籽1 天前
Spring Web MVC入门补充1
java·后端·spring·mvc
艾菜籽2 天前
Spring MVC入门补充2
java·spring·mvc
风兮w2 天前
MVC、MVP和MVVM的区别
mvc
蓝天智能2 天前
QT MVC中Model的特点及使用注意事项
qt·mvc
低音钢琴2 天前
【SpringBoot从初学者到专家的成长15】MVC、Spring MVC与Spring Boot:理解其差异与联系
spring boot·spring·mvc
.NET修仙日记3 天前
2025年ASP.NETMVC面试题库全解析
面试·职场和发展·c#·asp.net·mvc·面试题·asp.net mvc
William_cl3 天前
C# MVC网页调试的方法
开发语言·c#·mvc
哞哞不熬夜3 天前
JavaEE--Spring MVC
spring·java-ee·mvc