C# 4.0 C#ASP.net EditorTemplate-获取所用模型属性的名称
我有一个剃刀视图,我称之为:C# 4.0 C#ASP.net EditorTemplate-获取所用模型属性的名称,c#-4.0,C# 4.0,我有一个剃刀视图,我称之为: @Html.EditorFor(m => m.Code) 然后我有一个EditorTemplate视图,它被渲染,看起来像这样: @model string @Html.HiddenFor(m=>m) 我得到这个输出: <input id="Code" name="Code" type="hidden" value="" /> 一切都好 但是现在我只想在EditorTemplate视图中获取属性名code,而不是整个输入字符串。@H
@Html.EditorFor(m => m.Code)
然后我有一个EditorTemplate视图,它被渲染,看起来像这样:
@model string
@Html.HiddenFor(m=>m)
我得到这个输出:
<input id="Code" name="Code" type="hidden" value="" />
一切都好
但是现在我只想在EditorTemplate视图中获取属性名code
,而不是整个输入字符串。@Html.HiddenFor(m=>m)
方法能够以某种方式从模型对象获取它,并将其放入输入字段,但我如何才能做到这一点
(不,我不想从输入字段字符串中解析它…:)@Html.HiddenFor(m=>m)
似乎有点奇怪。。。但无论如何:
使用表达式
,因此您可以使用自己的函数只返回名称:
public static class GenericHelper<T>
{
public static String GetPropertyName<TValue>(Expression<Func<T, TValue>> propertyId)
{
var operant = (MemberExpression)((UnaryExpression)propertyId.Body).Operand;
return operant.Member.Name;
}
}
公共静态类GenericHelper
{
公共静态字符串GetPropertyName(表达式propertyId)
{
var operant=(MemberExpression)((UnaryExpression)propertyId.Body)。操作数;
返回operant.Member.Name;
}
}
然后创建一个助手在视图中使用它,这就解释了我不使用@Html.HiddenFor(m=>m)实际上,我只是想表明助手能够得到我想要的东西。谢谢你的回答!我得在这些表达中挖掘一点,我不是很熟悉。