首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

mvc HtmlHelper DisplayFor函数如何从lambda函数中提取完整的属性路径?

在MVC中,HtmlHelper的DisplayFor函数可以用于显示模型中某个属性的值。如果要从lambda函数中提取完整的属性路径,可以使用以下方法:

  1. 使用Expression类型的参数:

在DisplayFor函数中,可以使用Expression类型的参数来表示要显示的属性。例如:

代码语言:csharp
复制
@Html.DisplayFor(model => model.Property1.Property2.Property3)

这将显示Property1.Property2.Property3属性的值。

  1. 使用Html.DisplayNameFor函数:

如果要获取完整的属性路径,可以使用Html.DisplayNameFor函数。例如:

代码语言:csharp
复制
@Html.DisplayNameFor(model => model.Property1.Property2.Property3)

这将返回"Property1.Property2.Property3"字符串。

  1. 使用ExpressionHelper类:

如果需要从lambda表达式中提取属性路径,可以使用ExpressionHelper类。例如:

代码语言:csharp
复制
var propertyPath = ExpressionHelper.GetExpressionText(expression);

这将返回属性路径字符串。

  1. 使用ModelMetadata类:

如果需要从模型元数据中获取属性路径,可以使用ModelMetadata类。例如:

代码语言:csharp
复制
var metadata = ModelMetadata.FromLambdaExpression(expression, ViewData);
var propertyPath = metadata.PropertyName;

这将返回属性路径字符串。

综上所述,可以使用以上方法从lambda函数中提取完整的属性路径,并将其用于HtmlHelper的DisplayFor函数中。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

ASP.NET MVCModel元数据与Model模板:预定义模板

通过ModelMetadata表示Model元数据一个主要作用在于为定义在HtmlHelperHtmlHelper模板方法(这些模板方法包括Display/DisplayFor...View,我们通过调用HtmlHelperDisplayFor方法将一个具体Model对象Foo属性以显示模式呈现出来。...1: @model Model 2: @Html.DisplayFor(m=>m.Foo) 3: @Html.DisplayFor(m => m.Bar) 如下所示表示Foo和Bar两属性...对象,并在一个基于该Model类型强类型View通过调用HtmlHelperDisplayFor和EditorFor将两个属性分别以显示和编辑模式呈现出来。...也就是如果属性成员是一个复杂类型(不能支持字符串类型转换),它不会出现在最终生成HTML

5.8K110

Asp.net mvc 知多少(三)

由于个人技术水平和英文水平也是有限,因此错误在所难免,希望大家多多留言指正。 本节主要讲解视图引擎及HtmlHelper使用 Q24. ASP.NET MVC主要命名空间有哪些? Ans....Razor引擎是MVC3引入一种高级视图引擎。Razor不是一种新语言而是一种新标记语义。 Razor提供语义减少用户输入且富于表现力。相较于Web From 语义更加简洁且容易学习。...如何自定义视图引擎? Ans. ASP.NET MVC 是一个开源并且高度可扩展框架。...2.2 Strongly Typed HTML Helpers - 基于model属性创建html元素,主要是通过lambda表达式来创建元素。 ?...Display and DisplayFor:根据指定model属性和基于model属性数据类型和元数据选择一个合适html标签去渲染【只读状态视图】 。

2.3K60
  • ASP.NET MVCModel元数据与Model模板:模板获取与执行策略

    在这个实例我们定义了如下一个表示三角形数据类型Triangle,其属性A、B和C是一个Point对象,表示三个角所在坐标。...通过前面对复杂类型(Complex Type)介绍,这样会将Triangle三个属性复杂类型成员转换成简单类型成员。...我们以针对HtmlHelper扩展方法DisplayFor为例,看看针对通过表达式expression获取Model对象是如何以显示模式呈现出来。...); 4: } 在DisplayFor被调用时候,如果通过参数expression表示Model获取表达式是针对某个属性,那么属性名会被获取出来。...ASP.NET MVCModel元数据与Model模板:预定义模板 ASP.NET MVCModel元数据与Model模板:模板获取与执行策略 ASP.NET MVCModel元数据与Model

    1.6K60

    .NETASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板装饰者模式(二)

    ,我们这里ModelMetadata是针对View显示相关元数据;ModelMetadata绝大部分元数据是用来作为最终在View生成环节当中需要使用到,比如:如何确定一个领域相关属性(Address...()、DisplayFor()方法进行选择; 这是一个最基本MVC使用方式,Customer是需要View进行显示ViewModel,在View通过HtmlHelper扩展方法对Customer实体生成编辑...,前提是我们得很清楚它是如何控制HTMLDOM输出,到底是如何HtmlHelper对象协调,又如何参与到元数据设置当中; 5.通过对ViewModel使用预定义Attribute设置ModelMetadata...;在ASP.NETMVCModel元数据设置过程需要通过提取作用于Model上元数据控制特性并且逐一顺序执行后才能完成,而这里组件设计时元数据提取过程可以看成是和ASP.NETMVC Model...元数据设置过程提取元数据控制特性过程完全一致复用功能; 图10: ?

    98950

    ASP.NET MVC路由扩展:链接和URL生成

    和UrlHelper一样,如果在构造函数没有显示指定,那么RouteTable静态属性Routes表示RouteCollection对象将会用于初始化该属性。...在System.Web.Mvc.Html.LinkExtensions,我们为HtmlHelper定义了如下所示一系列ActionLink方法重载。...我们将RouteHelper定义在创建一个ASP.NET Web应用,如下面的代码片断所示,RouteHelper具有RequestContext和RouteCollection两个属性,前者在构造函数中指定...如果既没有显示指定传输协议名称也没有指定主机名称,直接返回VirtualPathDataVirtualPath体现相对路径,否则生成一个完整URL。...方法来说,它还是利用整个路由表进行URL生成,如果显示指定了路由对象注册名称,那么就会路由表获取相应路由对象,如果该路由对象与指定变量列表不匹配,则返回Null;否则返回生成URL。

    1.7K70

    MVC我们需要深入学习信息

    因为使用了扩展方法,我们自己是否可以正确定义一些helper类来满足我们自己业务需求,对于扩展方法我们又理解多少?htmlHelper那几个方法我们是否完全掌握?...Area 又称为区域,我们可以在一个完整应用程序定义不同功能点,比如前台 和后台区分?Area 可以轻松将这两种不同功能点玩美的区分开来,但是我们使用Area时候 需要注意一些问题?...我本人采用是AutoFac,以及如果在MVC中使用这种框架来实现程序灵活性控制呢?当然IOC实现方式,一共就三种,构造函数属性还有另外一个不常用方法注入。...继续努力吧 MVC 运行机制,我们知道asp.net 是一个非常复杂框架结构,MVC就运行在这种复杂框架结构之上,那么我们知道在MVCController是如何激活呢?...值传递 在MVC,Model数据传递到Controller,Controller将数据传递到View,或者View可以Model直接获取数据,这些数据传递有什么说法?

    42810

    ASP.NET MVC HtmlHelper

    ASP.NET MVCHtmlHelper 在ASP.NET MVC项目的开发,一般会默认使用Razor视图来进行View层编写,从而实现高效率C#/HTML代码混写。...如图会自动对ViewBag键值进行匹配并生成对应HTML代码。然而在实际编写这样仍旧不太方便,于是这里便可以用到VS为我们默认集成好HtmlHelper。...先贴一下MSDNHtmlHelper链接,MSDN对每一个构造函数属性、方法和扩展方法都做了说明,我这里就常用部分方法做一下简要展示。...namespace System.Web.Mvc 注意:为什么要改命名空间为System.Web.Mvc?...,于是我们将命名空间与HtmlHelper类所在命名空间保持一致。   4.在页面我们就可以使用我们自己写扩展方法了 @Html.MyExtHtmlLabel("EdisonChou")

    1.8K30

    认识ASP.NET MVC5种AuthorizationFilter

    ValidateInputAttribute就是这么做,我们可以如下表示ValidateInputAttribute定义看出来(构造函数参数enableValidation表示是否启动针对请求输入验证...,会先根据当前请求应用路径(对应HttpRequestApplicationPath属性)计算出表示防伪令牌Cookie名称,该名称会在通过对应用路径进行Base64编码(编码之前需要进行一些特殊字符替换工作...如果我们在AntiForgeryToken方法调用设置了表示域和路径domain和path参数,它们将会作为该HttpCookie对象Path和Domain属性。...为了生成该Hidden元素值,HtmlHelper会根据现有的AntiForgeryData对象(当前请求获取或者新创建)创建一个新AntiForgeryData对象,两个对象具有相同CreationDate...然后提交表单中提取一个名称为“__RequestVerificationToken”输入元素,如果这样元素不存在,同样抛出HttpAntiForgeryException异常;否则直接对具体值进行反序列化生成一个

    1.5K60

    Model验证系统运行机制是如何实现

    以及相关提供机制,接下来我们来讨论一下在这个以ModelValidator为核心Model验证系统,通过Model绑定得到数据对象验证是如何实现。...] 目录 一、ModelState谈起 二、实例演示:验证Model绑定过程对ModelError设置 三、验证消息呈现     HtmlHelper.ValidationMessage...MVC项目模板创建空Web应用,我们定义了如下一个默认HomeController。...三、验证消息呈现 Model验证过程伴随着Model绑定,当ModelBinder请求中提取相应数据为目标Action方法绑定参数值后,验证错误信息已经以ModelError形式保存到相应ModelState...在一个通过Visual StudioASP.NET MVC项目模板创建空Web应用,我们定义了如下一个属性Contact类型作为ViewModel。

    1.8K110

    ASP.NET MVC 5 - 给电影表和模型添加新字段

    对于您所提供测试影片数据,Title属性可以被用于此目的,因为每个标题在列表是唯一: context.Movies.AddOrUpdate(i => i.Title, 这个代码假设titiles属性是唯一...打开Models\Movie.cs文件并添加如下Rating属性: public string Rating { get; set; } 完整Movie类如下: public class Movie...在本节,您看到了如何修改模型对象并始终保持其和数据库Schema同步。您还学习了使用填充示例数据来创建新数据库例子,您可以反复尝试。...这只是一个简单介绍Code First,更完整教程请参阅Creating an Entity Framework Data Model for an ASP.NET MVC Application...接下来,让我们看看如何将丰富验证逻辑添加到模型类,并对模型类执行一些强制业务规则验证。相信有了本节如何修改模型对象并始终保持其和数据库Schema同步内容介绍,大家会对MVC理解又加深一步。

    2.4K80

    ASP.NET MVC Model元数据及其定制: Model元数据定制

    HtmlHelper定义了一系列基于Model模板方法,比如Display/DisplayFor、Editor/EditorFor、DisplayForModel/EditForModel...“WinForms”等和模板名称,这两个属性均在构造函数初始化。...如下面的代码片断所示,ScaffoldColumnAttribute具有一个布尔类型只读属性Scaffold表示目标元素是否应该存在于呈现在最终生成HTML基架,该属性在构造函数初始化。...如果ShowForDisplay属性为False,在调用模板方法EditorFor/EditorForModel方法时目标元素将不会出现在最终生成HTML;同理,在通过DisplayFor/DisplayForModel...除了具有一个DataType枚举类型DataType只读属性之外,DataTypeAttribute还具有一个字符串类型表示自定义数据类型CustomDataType属性,它们均在相应构造函数初始化

    1.8K50

    ASP.NET MVCModel元数据与Model模板:将”ListControl”引入ASP.NET MVC

    在通过Visual StudioASP.NET MVC项目模板创建空Web应用,我们定义一个作为Model表示员工Employee类型。...名称可以看出来,这四个特性分别代表了目标元素呈现在UI界面上形式,即对应着传统ASP.NET Web应用四种类型列表控件:RadioButtonList、DropdownList、ListBox...在该方法,我们创建了一个具体Employee对象并对它所有属性进行了相应设置,最终将该对象呈现在默认View。...ListAttribute实现了IMetadataAware接口,在实现OnMetadataCreated方法中将在构造函数中指定代表列表名称ListName属性添加到表示Model元数据ModelMetadata...对象AdditionalValues属性

    4.8K60

    Asp.Net MVC4入门指南(7):给电影表和模型添加新字段

    为对象模型变更设置 Code First Migrations 如果您使用是 Visual Studio 2012,解决方案资源管理器双击Movies.mdf,打开数据库工具。...为影片模型添加评级属性 给现有的Movie类,添加新Rating属性。...打开Models\Movie.cs文件并添加如下Rating属性: public string Rating { get; set; } 完整Movie类如下: public class Movie...在本节,您看到了如何修改模型对象并始终保持其和数据库Schema同步。您还学习了使用填充示例数据来创建新数据库例子,您可以反复尝试。...接下来,让我们看看如何将丰富验证逻辑添加到模型类,并对模型类执行一些强制业务规则验证。相信有了本节如何修改模型对象并始终保持其和数据库Schema同步内容介绍,大家会对MVC理解又加深一步。

    2K100

    ASP.Net MVC开发基础学习笔记:二、HtmlHelper与扩展方法

    在ASP.Net MVC微软并没有提供类似服务器端控件那种开发方式,毕竟微软MVC就是传统请求处理响应回归。所以抛弃之前那种事件响应模型,抛弃服务器端控件也理所当然。   ...继续反编译查看,在System.Web.Mvc命名空间下HtmlHelper类型如下图所示,经过MSDN大神讲解,HtmlHelper支持在视图中呈现 HTML 控件。...因为HtmlHelper服务器端自动帮你生成a标签,因此所生成href会遵循目前路由规则,也就帮我们屏蔽了变化,提高了工作效率。...就是某个类型属性。   ...gt;   这里主要是为了防止XSS攻击和恶意脚本,因此在MVC,默认就实现了。

    69220

    Asp.Net MVC4入门指南(5):控制器访问数据模型

    强类型模型和 @model 关键字 在本系列之前教程,您看到了使用ViewBag对象,控制器传递数据或对象给视图模板。ViewBag是一个动态对象,提供了方便后期绑定方法将信息传递给视图。...例如,在Details.cshtml模板,DisplayNameFor 和DisplayFor HTML Helper通过强类型Model对象传递了电影每个字段。...请注意这些代码是如何在Index操作方法,创建List对象,并调用View方法。...注: 如果没有显示数据库资源管理器,可以工具菜单,选择连接到数据库,然后关闭选择数据源对话框。这样将强制打开数据库资源管理器。...并添加一个SearchIndex方法和SearchIndex视图,使您可以在数据库搜索电影了。控制器访问数据模型是MVC数据传递重要知识部分,深入理解了这部分内容才能更好进行MVC开发。

    4.2K50

    ASP.NET MVC集成EntLib实现“自动化”异常处理

    以用户登录场景为例,我们在通过Visual StudioASP.NET MVC项目模板创建Web应用定义了如下一个简单数据类型LoginInfo封装用户登录需要输入用户名和密码。...对于我们例子来说,Index方法抛出异常被处理后会调用OnIndexError方法作为对当前请求响应。...对Index方法抛出异常进行处理后采用错误View方式来响应请求,我们需要按照如下方式将应用在该方法上HandleErrorActionAttribute特性注释掉。...表单成功提交(服务端因对抛出异常进行处理而返回一个封装异常Json对象,对于提交表单Ajax请求来说依然属于成功提交)后会调用我们定义回调函数login。...在该JavaScript函数,我们通过得到对象是否具有一个ExceptionType属性来判断服务端是否抛出异常。如果抛出异常,在通过调用alert方法将错误消息显示出来,否则显示“认证成功”。

    1.1K100
    领券