asp.net-mvc – 为什么在ASP.NET MVC中使用lambdas而不是反射?
|
现在与Asp.Net MVC合作已经有一段时间了,但是我遇到了一个非常奇怪的问题.每次我创建一个模型时,我都会使用lambda表达式,如: @Html.EditorFor(model=>model.SomeProperty) 为什么Asp.Net MVC使用这种类型的架构? 为什么我不能用反射传递属性? 是否更快地使用lambda表达式?因为在引擎盖下我认为要获得属性名称必须使用反射. 解决方法Lambda>反射使用lambdas你得到: >设计时,强类型属性选择器. 感谢lambda,任何API都可以从属性选择器中了解很多东西: >物业类型. 另外,检查方法签名(http://msdn.microsoft.com/en-us/library/ee402949(v=vs.108).aspx): public static MvcHtmlString EditorFor<TModel,TValue>(
this HtmlHelper<TModel> html,Expression<Func<TModel,TValue>> expression
)
它是表达式树而不是常规lambda.这允许MVC(以及任何API)操纵表达式,以便在运行时调用它之前添加更多行为,而不会发生反射. 详细了解表达式树: > http://msdn.microsoft.com/en-us/library/bb397951.aspx (编辑:日照站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – 如何继承ASP.NET MVC控制器并仅更改视图?
- asp.net – 在网站上放置广告的最佳做法?
- asp.net-core – 具有取消令牌的自定义AspCore中间件
- asp.net – 在部分视图中强制使用没有Html.BeginForm / Aja
- asp.net – 在剃刀中等同于End / Response.End?
- asp.net-mvc – MVC4部分视图没有将值加载到“容器”模型中
- asp.net – UpdatePanel中的动态创建控件?
- .Net 更容易的使用配置文件 SuperConfig
- asp.net – .NET Web API 2 OWIN承载令牌认证
- asp.net-mvc – 在asp.net mvc 3剃刀中识别html助手的问题
- asp.net-mvc-3 – 是否可能获得一个ASP.NET MVC
- asp.net-mvc – 在我的ASP.NET MVC网站中缓存不能
- asp.net-mvc – ActionResult上的自定义属性
- 密码由6-12位数字或字母组成,密码哈希加密
- 我应该在ASP.NET MVC中构建我的下一个Web应用程序
- asp.net-mvc – 在ASP.NET MVC中添加服务引用4
- asp.net-mvc – Umbraco 7自定义cookie
- asp.net删除文件session丢失
- asp.net-mvc – 使用Repository/Service Pattern
- asp.net-mvc – 如何检查是否为浏览器启用了cook
