2014-03-05 122 views
0

我想将属性名称作为字符串传递给@HTML.Textboxfor()。我不能使用@HTML.Textbox。该代码可能类似于@HTML.TextboxFor(model => model["PropertyName"])@HTML.TextboxFor("PropertyName")而不是@HTML.TextboxFor(model => model.PropertyName)。我不能使用@HTML.Textbox。请帮我解决这个问题。如何将属性名称作为字符串传递给ASP.NET MVC中的@ HTML.TextboxFor()

+0

是否有任何理由,你需要这样访问它?模型用于强类型对象,属性名称,它们不是数组。只是试图找出你想要解决什么问题 – user3036342

+0

@ user3036342我有存储在数据库中的属性名称。我从数据库中检索所有属性名称,将它们放入一个viewbag中,然后循环它们以使用html助手在视图上生成控件。在这里我需要从viewbag指定属性名称。我曾与Html.textbox和Html.dropdownlist工作,但他们不正确。所以我必须找到一个方法来HTML.Textboxfor和html.dropdownlistfor。 –

+0

啊我明白了。你尝试过:@ Html.TextBoxFor(model => model.PropertyName,new {id = model.PropertyID,Value = model.PropertyValue})?您检索的属性名称应该以IEnumerable(包含控件的yourmodel)的形式进入,这是按照我的示例强类型化和可访问的。那么你不必怪异地引用它。或者可能会发布一些示例代码,以便我可以更好地提供帮助 – user3036342

回答

2

您可以使用简单的HTML文本控件

<input type="text" value="@Model.ProperyName" name="PropertyName" id="PropertyName"/> 
0

顺便说一句。这也将存活属性名称重构:

<input type="text" value="@Html.ValueFor(m => m.PropertyName)" 
    name="@Html.NameFor(m => m.PropertyName)" /> 
相关问题