选择列表的名称

时间:2014-02-01 07:14:02

标签: asp.net-mvc html5

我有一个选择列表,我正在获取所选值但我想检索选择列表的名称...

例如

<select name="author">
    <option> abc </option> 
    <option> def </option> 
</select>.

我想让“作者”行动起来。

3 个答案:

答案 0 :(得分:0)

<select name="author"><option selected="selected"> abc </option> <option> def </option> </select>

答案 1 :(得分:0)

这是我的解决方案 -

编写一个简单的扩展方法,使用Expression获取属性名称 -

public static class ReflectionExtensions
{
    public static string GetPropertyName<T>(Expression<Func<T>> propertyExpression)
    {
        return (propertyExpression.Body as MemberExpression).Member.Name;
    }
}

然后在视图中,您可以简单地使用隐藏字段来保存属性的名称,并可以从隐藏字段在服务器上检索它 -

@Html.Hidden("Hidden1", MVC.Controllers.ReflectionExtensions.GetPropertyName(() => Model.Property));

在FormCollection中,您可以获取该属性的名称。

如果您不想对HiddenField使用任何名称,则可以使用propertyname作为隐藏字段名称 -

@Html.Hidden(MVC.Controllers.ReflectionExtensions.GetPropertyName(() => Model.SelectedNames), 
    MVC.Controllers.ReflectionExtensions.GetPropertyName(() => Model.SelectedNames));

在这种情况下,您可以将hiddenfield的名称和值都作为属性名称。

答案 2 :(得分:0)

我相信占位符标签选项是您的答案:在列表顶部显示名称“作者”,默认情况下可见:video demo

如果是,代码是:

&lt; select required&gt;
   &lt; option value =“”&gt;作者&LT; /选项&GT;
   &LT;选项&GT; abc&lt; / option&gt;
   &LT;选项&GT; def&lt; /选项&gt;
&LT; /选择&GT;

相关问题