我有一个选择列表,我正在获取所选值但我想检索选择列表的名称...
例如
<select name="author">
<option> abc </option>
<option> def </option>
</select>.
我想让“作者”行动起来。
答案 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;