asp.net+mvc+html辅助,【ASP.NET MVC】HTML辅助方法

本文介绍了ASP.NET MVC中Html.Action和Html.RenderAction的区别。Html.Action执行控制器操作并返回结果,允许灵活性和模型重用,而Html.RenderAction则直接将内容写入响应流。在示例中,`Menu`操作被标记为`ChildActionOnly`,只能通过Action或RenderAction调用,并展示了如何在`Index`视图中调用`Menu`操作显示菜单。

Html.Action和Html.RenderAction Action是执行单独的控制器操作并显示结果,Action提供了更多的灵活性和重用性,因为控制器操作可以建立不用的模型,可以利用单独的控制器上下文,他们两个仅有的不同是:RenderAction可以直接写入响应流。下面看一下代码: p

Html.Action和Html.RenderAction

Action是执行单独的控制器操作并显示结果,,Action提供了更多的灵活性和重用性,因为控制器操作可以建立不用的模型,可以利用单独的控制器上下文,他们两个仅有的不同是:RenderAction可以直接写入响应流。下面看一下代码:public class MyController

{

public ActionResult Index()

{

return View();

}

[ChildActionOnly]

public ActionResult Menu()

{

var menu=GetMenuFromSomewhere();

return PartialView(menu);

}

}

Menu操作构建一个菜单模型并返回一个带有菜单的分布视图@model Menu

@foreach(var item in Model.MenuItem)

{

@item

}

在Index.cshtml视图中,可以调用Menu操作来显示菜单

@Html.Action("Menu")

注意Menu操作使用了ChildActionOnlyAttribute特性来标记,这个特性设置防止了运行时直接通过一个URL来调用Menu操作,相反,只能通过Action或RenderAction来调用这个操作。

在ASP.NET MVC3中,在ControllerContext上也有一个称为IsChildAction的新属性,当通过Action或RenderAction方法调用操作时,它的值就为True,当通过一个URL调用时,它的值为false。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值