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 (编辑:甘南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- IIS和ASP.Net Web开发服务器之间的行为差异?
- asp.net-mvc – ASP.NET MVC:部分知道它是否是从另一个页面
- asp.net-mvc – ASP.NET MVC Beta 1:DefaultModelBinder错
- asp.net-mvc – 访问ASP.NET MVC应用程序中的控制器/操作列
- asp.net – UserControl Viewstate在回发后丢失所有值
- 加快ASP.NET中的构建时间
- 如何刷新#include文件 – 它们在IIS7 / ASP.NET上进行缓存
- linq – ASP.NET Web API GET方法:为单个参数传递多个值
- asp.net-mvc – 如何在asp.net mvc中处理分页?
- asp.net-mvc – 我需要有关HandleError的更多信息
- asp.net – 如何正确地大写希腊字在.NET?
- 如何设置特定于ASP.NET请求的log4net上下文属性?
- asp.net-mvc-2 – ASP.NET MVC 2并列为隐藏值?
- webforms – ASP.Net Core 1.0是否支持WebForm项
- asp.net-mvc – ASP.Net 5中缺少FormCollections
- asp.net-mvc – 如何将XML作为POST传递给ASP MVC
- asp.net – 更改事件和IE8的jQuery问题
- asp.net – 增加IIS7 / Win7 Pro上的最大上传文件
- asp.net-mvc – ASP .Net MVC 3:子动作和重定向
- 为ASP.NET应用程序实现后台服务的最佳方法是什么