C# 使用Orchard CMS定义的Html.FieldNameFor()获取MVC表单字段名

C# 使用Orchard CMS定义的Html.FieldNameFor()获取MVC表单字段名,c#,asp.net-mvc,linq,razor,orchardcms,C#,Asp.net Mvc,Linq,Razor,Orchardcms,我想基于Html.FieldNameFor()生成表单字段名,但我不确定这是否适用于我的视图模型。ViewModel看起来像 public class FieldsModel { public string Caption { get; set; } } public class FormModel { public FieldsModel Fields { get; set; } } public class ViewModel { public FormModel Form

我想基于Html.FieldNameFor()生成表单字段名,但我不确定这是否适用于我的视图模型。
ViewModel
看起来像

public class FieldsModel
{
  public string Caption { get; set; }
}

public class FormModel
{
  public FieldsModel Fields { get; set; }
}

public class ViewModel
{
  public FormModel Form { get; set; }
}
如何编写Linq lamda表达式,以便Razor理解它

显然有点像

@Html.FieldNameFor(model.Form.Fields => Caption) 
不起作用

更新: 为了清楚起见,我需要从该函数调用中获取
标题

请尝试以下操作

@Html.DisplayNameFor(model.Form.Fields.Caption) 

它会给出字段的准确名称。

为什么不试试下面的方法呢。我从来没有听说过
@Html.FieldNameFor()
这是你自定义的Html助手方法吗?@Aravindan我不需要尝试(尽管我拼命尝试),因为它不是一个有效的lamda表达式。@Kartikeya哦,天哪,它是由Orchard.Mvc.Html中的Orchard CMS定义的HtmlHelper的扩展方法。我认为这是标准的MVC,我的错。不要使用
@Html.FieldNameFor(model=>model.Form.Fields.Caption)
使用
@Html.DisplayNameFor(model=>model.Form.Fields.Caption)
不,首先需要编写
@Html.LabelFor(model=>model.Form.Fields.Caption)
或Razor无法理解它,然后返回
标题
。我只需要字段名
标题
。在上面的代码中,我使用了ID,请尝试一下,我测试过它运行良好。一旦得到它,请立即通知。
Html.IdFor()
Html.Id()
的模板化版本,它根据视图使用的模型返回Id,该模型是
ViewModel
而不是
FieldsModel
,因此Id是
表单字段\标题
,而不是
标题