html.renderaction 控制器,Html.Action与Html.RenderAction的用法与区别:RenderAction要写在代码中!!!1...

Action是执行单独的控制器并且显示结果,Action与RenderAction不同的是,Action返回的是字符串,而RenderAction是写入响应流,因此RenderAction是要写在代码中:

@Html.Action("test")

@{

Html.RenderAction("test");

}

下面来介绍怎样具体实现Html.Action:

1.首先在Models里面创建两个类:Menu.cs 和MenuItem.cs

public class Menu

{

public List Items { get; set; }

}

public class MenuItem

{

public string Text { get; set; }

public string Url { get; set; }

}

2.在Controllers添加代码:

[ChildActionOnly]

public ActionResult Menus()

{

Menu menu = new Menu();

List items = new List();

items.Add(new Models.MenuItem() { Text = "Baidu", Url = "http://www.baidu.com" });

items.Add(new Models.MenuItem() { Text = "Sina", Url = "http://www.sina.com" });

items.Add(new Models.MenuItem() { Text = "Sohu", Url = "http://www.sohu.com" });

items.Add(new Models.MenuItem() { Text = "IBM", Url = "http://www.ibm.com" });

menu.Items = items;

return PartialView(menu);

}

其中[ChildActionOnly]这个特性设置了防止运行时直接通过一个URL调用Menu操作,只能通过Action和RenderAction操作。这个特性不是必须要用的。

3.创建Menus视图:

@model Example.Models.Menu

@foreach (var item in Model.Items)

{

@item.Text

}

[email protected]tml:

@Html.Action("MyMenu")


@{

Html.RenderAction("MyMenu");

}

这是两种方式的调用。

__________________________________________________ ____________________________ ____________________________ ____________________________ _______________________________

@Html.Partial/@{Htmt.RenderPartial()}

@Html.Partial用于将分部视图渲染为字符串

@{Html.RenderPartial}将分布视图直接写入响应输出流,所以只能直接放在代码块中,不能放在表达式中(返回值是void)

__________________________________________________ ____________________________ ____________________________ ____________________________ _______________________________

原文:https://www.cnblogs.com/kelelipeng/p/13071043.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值