• .Net MVC 的学习


    MVC 的学习

    强弱视图

    1.强视图

    若在控制器中使用 ViewData["data"]来存储数据,在前台页面使用的时候会需要转型,比较麻烦,而强视图为我们解决了麻烦

    它可以在Models中添加一个作为强类型的实体 并可以用viewData传递到视图

    平常使用的ViewPage<result.>修改成viewPage<Models.ResultDetailModel>即可直接在界面中调用

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace AssetCaModel.Models
    {
        public class ResultDetailModel
        {
            public string TypesName { get; set; }
            public double Asset_Revenue { get; set; }
            public double Asset_Balance { get; set; }
            public DateTime Expend_date { get; set; }
            public string User_Name { get; set; }
            
        }
    }
    

    2.弱视图

    除了强类型以外视图还可以方位弱类型的数据集合,弱视图不显式声明要使用的数据类型。可以用弱类型数据集合将少量数据传入传出控制器和视图

    ViewData

    上面有提到viewdata 它是通过string键访问的ViewDataDictionary对象。这些字符串数据可以直接存储和使用,不需要强转

    但在取值的时候必须将其强转为特定类型

    public IActionResult SomeAction()
    {
        ViewData["Greeting"] = "Hello";
        ViewData["Address"]  = new Address()
        {
            Name = "Steve",
            Street = "123 Main St",
            City = "Hudson",
            State = "OH",
            PostalCode = "44236"
        };
     
        return View();
    }
    

    在视图中:

    
    @{
        // Since Address isn't a string, it requires a cast.
        var address = ViewData["Address"] as Address;
    }
     
    @ViewData["Greeting"] World!
     
    <address>
        @address.Name<br>
        @address.Street<br>
        @address.City, @address.State @address.PostalCode
    
    </address>
    

    ViewBag

    ViewBag是DynamicViewData对象,可提供对存储在viewdata中对象的动态访问,因此更方便,不需要强转

    
    public IActionResult SomeAction()
    {
        ViewBag.Greeting = "Hello";
        ViewBag.Address  = new Address()
        {
            Name = "Steve",
            Street = "123 Main St",
            City = "Hudson",
            State = "OH",
            PostalCode = "44236"
        };
     
        return View();
    }
    

    在视图中:

    @ViewBag.Greeting World!
     
    <address>
        @ViewBag.Address.Name<br>
        @ViewBag.Address.Street<br>
        @ViewBag.Address.City, @ViewBag.Address.State @ViewBag.Address.PostalCode
    </address>
    

    TempData

    tempdata是继承自tempdatadictionary类的字典对象,默认情况下是基于session存储机制之上的

    tempdata是用来在多个actions或者从当前请求向子请求,页面发生了重定向时传递共享数据

    与上面类似

    也是先创建model类然后通过控制器取数据

  • 相关阅读:
    8.18 二讲背包问题之完全背包
    8.18 动态规划——背包问题之01背包
    8.17 动态规划——书的抄写
    7.25 二分查找模板
    7.19 股票问题
    7.12 枚举-Jam的计数法
    7.12 递归——双色hanoi塔问题
    7.11 NOIP2007普及组第3题 守望者的逃离
    高数之泰勒公式
    数据结构_线性表之链表(1)
  • 原文地址:https://www.cnblogs.com/jimGraymane/p/14628036.html
Copyright © 2020-2023  润新知