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 (编辑:4S站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 是否可以在源代码中使用iframe和localhost地址?
- asp.net – 如何查看Chrome开发者工具中发布到表单的数据大
- ASP.NET中TextBox使用Ajax控件显示日期不全的问题解决方法
- .net – CS0012:类型’System.Data.Linq.DataContext’在未
- 从代码隐藏调用ASP.NET Web API
- asp.net-mvc – 如何锁定ASP.NET MVC中的路径?
- asp-classic – 从Classic ASP执行存储过程
- LoginView中的ASP.NET LoginStatus不会触发LoggingOut事件
- asp.net – 在SQL Server中将日期转换为刻度
- asp.net-mvc-3 – “字段宽度必须是数字.”在客户端
- asp.net – FormsAuthentication.GetRedirectUrl
- 什么是链接服务器的ASP.NET连接字符串格式?
- ASP.NET通过分布式Session提升性能
- asp.net-web-api – ASP身份OAuth令牌 – 我应该
- asp.net+ajaxfileupload.js 实现文件异步上传代码
- asp.net-mvc-3 – ASP.net MVC – 模型绑定不包括
- ASP.NET MVC全能路由
- asp.net-mvc – 为什么ASP.NET MVC 4与IList for
- asp.net-mvc – 如何使用Visual Studio 2013和En
- asp.net-mvc – 在一个页面中以两种不同的形式使