zoukankan      html  css  js  c++  java
  • 5.MVC框架开发(强类型开发,控制器向界面传递数据的几种方法)

     界面表单中的表单元素名字和数据库表的字段名相一一映射(需要哪个表的数据就是那个表的模型(Model))

    在View页面中可以指定页面从属于哪个模型

    注:以上的关系可以通过MVC的强类型视图开发来解决我们的开发代码的智能感知

    1.强类型视图开发的步骤

    1)在页面中指定强类型的类型(一定是引用类型),代码:例:

    @model List<MyMVCBookShop.Models.Book>

    2)从控制器传强类型的数据到View视图里,那么就必须保证传入的数据一定和强类型视图中定义的类型相一致,例:

    MyBookShopContext bookshop = new MyBookShopContext(); 
    public ActionResult Index()
            {
                List<Book> m = bookshop.Books.OrderBy(p => p.Id).Take(16).ToList();
                return View(m);
            }

    3)在视图页里应用它的Model属性,例:

    @{
    foreach (var item in Model)
    {
    <li><a href="/Book/Detail?bookid=@item.Id">@item.Title</li>
    }
    }
    

    2.控制器向界面传递数据的几种方法

    1)通过强类型传递

    2)通过ViewBag传递,它是动态解析类型,在运行的时候会自动解析是什么类型,编写的时候并不知道类型

    3)通过ViewData传递,它是集合的方式存储(以键值对的方式存储),在界面使用时先转换后使用,例:

    //在控制器当中
    MyBookShopContext bookshop = new MyBookShopContext();
            [HttpGet]
            public ActionResult Index()
            {
                List<Category> ListCstegory = bookshop.Categories.OrderBy(p => p.Id).ToList();
                ViewData["Category"] = ListCstegory;
                return View();
            }
    //在View页面中
     <ul class="black">
                    @{
        List<Category> listcate = ViewData["Category"] as List<Category>;
        foreach (var item in listcate)
        {
                            <li><a href="/Book/List/@item.Id">@item.Name</a></li>
        }
    }
    </ul>
    

    4)通过TempData来传递数据(一般主要用于不同Action之间传递数据),TempData只保留一次数据,也是以键值对的方式存储数据

    返回值为:return RedirectToAction("另一个Action名");这样TempData只能读取一次数据

    总结ViewBagViewDataTempData三者之间的区别?

  • 相关阅读:
    android 75 新闻列表页面
    android 74 下载文本
    android 73 下载图片
    android 72 确定取消对话框,单选对话框,多选对话框
    android 71 ArrayAdapter和SimpleAdapter
    android 70 使用ListView把数据显示至屏幕
    maven如何将本地jar安装到本地仓库
    Centos6.7搭建ISCSI存储服务器
    解决maven打包编译出现File encoding has not been set问题
    MySQL 解决 emoji表情 的方法,使用utf8mb4 字符集(4字节 UTF-8 Unicode 编码)
  • 原文地址:https://www.cnblogs.com/szmgo/p/5181869.html
Copyright © 2011-2022 走看看