asp.net mvc5 Controller向View传递数据四大方式简介

1、ViewBag

2、ViewData

3、TempData

4、Model

1、ViewBag

Controller:ViewBag.变量名  

View:直接使用@ViewBag.变量名 

举例子:

ViewBag.wulala="hello";//什么类型都可以

<p>@ViewBag.wulala</p>

2、ViewData

Controller:ViewData["key"]=value;

View:直接使用@ViewData["key"]

以上两种传值方式的前提是在同一个控制器下页面之间传值

3、TempData

他可以跨控制器传值,但是它具有一次性,也就是读完一次就消失了

Controller:TempData["key"]=value;

View:直接使用@TempData["key"]

例如: 当前在Home控制器下,传数据到Article控制器下

return Redirect("~/Article/myTest");//重定向到其他控制器下的页面

4、Model

区别于以上三种,上面三种传多个参数就要写多个xxxx["key"]=value;但是对于比较复杂或者数量比较多的数据,浏览器有时候会拒绝传输,这个时候可以传对象 

比如我传一个user信息到前端:

 public ActionResult ShowContext(int id)
 {

User u=new User(id,name,age,sex,phone,address,.....)

return View(u);

}

前段接受并使用:

//先声明接收的model的类型
@model 项目名字.Models.类名

//使用
<p>名字:@Model.name</p>
<p>年龄:@Model.age</p>

再举一个传递一个list<>的例子

  public ActionResult ShowContext(int id)
        {
            List<works> workList = new List<works>();
            workList = Op_Works.FindArticleByFlag(id);
            return View(workList);
        }

前端接收并使用

@model List<ProtectAnimal.Models.works> //@model List<类型> 

  @foreach (var w in Model)//遍历list的每一个对象
            {
        
                <article class="post">
                <header>
                    <div class="title">
                    <h2><a href="#">@w.Title</a></h2>
                    <p>@w.CoreSentence</p>
                    </div>
                    <div class="meta">
                        <a href="#" class="author"><img src="../../Content/images/avatar.jpg" alt="" /></a>
                        <span>@Html.ActionLink(@w.author, "CatAuthorArt", new { uid = w.Uid })</span>
                    </div>
                </header>
                <div class="setimage">
                    <a href="#" class="image featured"><img src=@w.Image alt="" /></a>
                </div>
                <br />
            <p class="overline1">@w.Context</p>
           
             </article>
             
     }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值