博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[ASP.NET MVC]让Html.RenderAction支持Lamda表达式
阅读量:7054 次
发布时间:2019-06-28

本文共 1232 字,大约阅读时间需要 4 分钟。

今天在ASP.NET MVC代码时用到了Html.RenderAction,代码如下:

@{Html.RenderAction("RecentNews")}

通过字符串指定Action的名称,有两点不爽:

1. 输入时不能智能感知;

2. 输错了不能实时提示。

有这两点不爽,写代码的乐趣就大减。有享受感觉的代码应该是这样的: 

@{Html.RenderAction
(c => c.RecentNews());}

是的,Lamda,给你写代码带来畅快感觉的Lamda!

微软不让我们享受,我们就自己动手,丰衣足食。自己写一个支持Lamda表达式的Html.RenderAction,代码如下:

using System.Web.Mvc;using System.Web.Mvc.Html;using System.Linq.Expressions;namespace System.Web.Mvc.Html{    public static class HtmlHelperExtensions    {        public static void RenderAction
(this HtmlHelper htmlHelper, Expression
> operation) where TController : Controller { var actionName = ((MethodCallExpression)operation.Body).Method.Name; htmlHelper.RenderAction(actionName); } }}

注:其中"((MethodCallExpression)operation.Body).Method.Name"代码来自。

顺带分享一篇文章,通过这篇文章你可以清楚的知道Html.RenderPartial与Html.RenderAction之间的区别。

比如:博客园首页的最新随笔列表就适合用Html.RenderPartial,而右侧的“新闻列表”就适合用Html.RenderAction。

简单的理解就是:Html.RenderPartial用的到PartialView只用一次(虽然实际可以多次使用,但比较麻烦,每次都要传Model),Html.RenderAction用的到PartialView被多个视图使用(有自己的Action提供Model)。

转载于:https://www.cnblogs.com/dudu/archive/2012/05/15/html_renderaction_lamda.html

你可能感兴趣的文章
Mac Lion 下轻松更换 Caplock 键和 Control 键的映射--用于提升ema...
查看>>
在LispBox环境上安装 portableaserve 的详细过程
查看>>
通过 Land of Lisp 中的超简短字符游戏例程学习 loop 和 format
查看>>
instanceof, isinstance,isAssignableFrom的区别
查看>>
ITK, VTK, QT 安装与配置问题记录
查看>>
Java8学习笔记
查看>>
缓存之EHCache(第五个记录)
查看>>
一个超轻量级的 ORM 框架
查看>>
转:JVM底层又是如何实现synchronized的
查看>>
MySQL(Slow)
查看>>
Java SE 6 新特性: JMX 与系统管理
查看>>
jvm系列(八):jvm知识点总览
查看>>
4.1Javap命令的使用
查看>>
Ctags的安装与使用
查看>>
WIN7版IE10
查看>>
服务升降级之开关功能控制
查看>>
Data source rejected establishment of connection, message from server: Too many connections
查看>>
自动切换的tab标签代码
查看>>
VMware ThinApp简明教程:制作单文件软件和便携软件
查看>>
Swift开发笔记-Mac OS X 天气预报应用开发(Xcode7.2)
查看>>