C#笔记之MVC中ViewData传对象到视图

一、目标

在C# MVC开发模式下了解ViewData怎么讲一个List<Model>传到前台,并且前台怎么循环读取出数据

二、平台

vs2013, MVC模式

三、重要部分控制器代码展示

 #region 5.PC详情页
        public ActionResult PcDetail()
        {
            string pcUID = Request["id"].Trim();
            if (pcUID!=null || pcUID !="")
            {
                //PC详情数据
                PcBLL pcbll = new PcBLL();
                PcModel pm = new PcModel();
                pm = pcbll.getPcByUID(pcUID);
                //PC配件<CPU>数据
                List<PcPart> pp = new List<PcPart>();
                pp= pcbll.getPcPartByPcID_class(pcUID);
                ViewData["pcPart"] = pp;
                return View(pm);
            }
            return Content("没有这样的数据");
        }
#endregion

四、前端视图写法

@model System007_Entity.PcModel
@using System007_Entity
<!DOCTYPE html>
<html>
<head>
<title>PC列表页</title>
</head>
<body>
<!--省略掉了N多与本篇文章无关的代码-->
 <div class="col-md-4">
            <strong>保修期开始:</strong><em>@Model.repairStart</em>
        </div>
        <div class="col-md-4">
            <strong>保修期结束:</strong><em>@Model.repairEnd</em>
        </div>
        <div class="col-md-4">
            <strong>创建人:</strong><em>@Model.createPerson</em>
        </div>
        <div class="col-md-4">
            <strong>创建时间:</strong><em>@Model.createTime</em>
        </div>
        <div class="col-md-4">
            <strong>编辑时间:</strong><em>@Model.editTime</em>
        </div>
        <div class="col-md-4">
            <strong>总备注:</strong><em>@Model.note</em>
        </div>
        <!--详情页加载结束-->
        <div class="row">

        </div>
        <hr />
        <h2>配件部分</h2>
        <div class="col-md-12">
            <table border="1">
                <tr>
                    <th>配件类别</th>
                    <th>配件品牌</th>
                    <th>配件型号</th>
                    <th>配件规格</th>
                    <th>配件价格</th>
                    <th>保修期开始</th>
                    <th>保修期结束</th>
                    <th>修改日期</th>
                    <th>创建日期</th>
                    <th>配件备注</th>
                </tr>
                @{
                    var pcParts = ViewData["pcPart"] as List<PcPart>;
                    if (pcParts != null && pcParts.Any())
                    {
                        foreach (var item in pcParts)
                        {
                            <tr>
                                <td>@item.pcPartClass</td>
                                <td>@item.brand</td>
                                <td>@item.xModel</td>
                                <td>@item.specification</td>
                                <td>@item.price</td>
                                <td>@item.repairStart</td>
                                <td>@item.repairEnd</td>
                                <td>@item.editTime</td>
                                <td>@item.createTime</td>
                                <td>@item.Note</td>
                            </tr>
                        }
                    }
                }
            </table>
</body>
</html>

五、代码解析:

1.控制器中写个ViewData["pcPart"],用来装在List<Model>。

2.视图中先引用@using 引用实体类(仅引用实体类即可,无需引用具体对象名)

3.视图中html要展示数据区域写上@{},然后将控制台定义的ViewData转换成List<Model>以便循环。

如例子中:var pcParts = ViewData["pcPart"] as List<PcPart>;   就是将接收到的viewdata转换成一个listModel,便于我们用foreach循环。

 

实测有效。kahn 2019年7月2日16:55:06

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潇洒哥Kahn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值