加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 如何在MVC3自定义编辑器模板中获取属性名称

发布时间:2020-12-15 18:49:14 所属栏目:asp.Net 来源:网络整理
导读:我在我的项目中有一个枚举,我为这个枚举创建了一个自定义编辑器模板。所以,现在我有一个类型的这个枚举的属性,将渲染一个下拉列表。 这很好,但我想用属性的名称命名我的下拉菜单中的select元素。这是我的编辑器模板的Razor代码。 @model ItemEnumeration
我在我的项目中有一个枚举,我为这个枚举创建了一个自定义编辑器模板。所以,现在我有一个类型的这个枚举的属性,将渲染一个下拉列表。

这很好,但我想用属性的名称命名我的下拉菜单中的select元素。这是我的编辑器模板的Razor代码。

@model ItemEnumerations.ItemType

    <select id="PropertyNameHere" name="PropertyNameHere">
    @foreach (ItemEnumerations.ItemType in Enum.GetValues(typeof(ItemEnumerations.ItemType))) {
        <option value="@value" @(Model == @value ? "selected="selected"" : "")>@value.ToString()</option>           
    }
    </select>

所以,我选择元素id和name属性的“PropertyNameHere”,我想拥有我的模型的属性的名称。这里是一个例子:

我的型号:

public class MyModel{
        public int ItemID {get;set;}
        public string ItemName {get;set;}
        public ItemEnumerations.ItemType MyItemType {get;set;}
    }

我的查看代码:

@model MyModel

@Html.LabelFor(m => model.ItemID)
@Html.DisplayForm(m => model.ItemID)

@Html.LabelFor(m => model.ItemName)
@Html.EditorFor(m => model.ItemName)

@Html.LabelFor(m => model.MyItemType )
@Html.EditorFor(m => model.MyItemType )

我想要我的select元素的名称和id为’MyItemType’。

解决方法

我在这里的一本书中找到了答案。其实这让我很近,但是我可以根据我发现的方式google其余的。

这是我需要添加到我的编辑器模板。

@{var fieldName = ViewData.TemplateInfo.HtmlFieldPrefix;}
<select id="@fieldName" name="@fieldName">

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读