C# 使用自定义字段名获取模型属性
我有一个这样属性的模型C# 使用自定义字段名获取模型属性,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个这样属性的模型 [Display(Name = "Option Value 1")] public string option_value1; [Display(Name = "Option Value 2")] public string option_value2; [Display(Name = "Option Value 3")] public string option_value3; [Display(Name = "Option Value 4")] public stri
[Display(Name = "Option Value 1")]
public string option_value1;
[Display(Name = "Option Value 2")]
public string option_value2;
[Display(Name = "Option Value 3")]
public string option_value3;
[Display(Name = "Option Value 4")]
public string option_value4;
...
...
[Display(Name = "Option Value n")]
public string option_valuen;
我想做一些事情,比如
for (i = 0;i < n; i++) {
if (Model.getProperty("Option_Value"+i) != null)
{
then display "Option_Value"+i
}
(i=0;i{
if(Model.getProperty(“Option_Value”+i)!=null)
{
然后显示“选项_值”+i
}
我可以在cakephp中非常顺利地完成,在ASP.NET MVC中也可以吗?是的,可以通过使用数组来完成。与为每个选项创建单独的属性不同,您的模型中应该有一个属性:
public string[] Options { get; set; }
然后,您将能够循环浏览它,并使用索引访问选项
为该字符串创建输入时,您必须使用带有索引的for循环来获取MVC,以生成输入的正确id和名称属性:
@for(int i = 0; i < Model.Options.Length)
{
@Html.EditorFor(m => Model.Options[i])
}
@for(int i=0;iModel.Options[i])
}
如果不能使用数组,另一种方法是使用弱类型版本的HtmlHelpers
:
@for (i = 0; i < n; i++)
{
@Html.Display("option_value" + i)
}
(i=0;i@for
{
@Html.Display(“选项值”+i)
}
如果您想要一个文本框用于编辑,可以用
编辑器替换显示
。谢谢您的快速回答!因为我首先使用EF DB,如果我无法向模型添加数组,并且属性无法更改,该怎么办?我可以在MVC视图中通过自定义名称访问属性吗?在这种情况下,最好绕过t他创建了一个模型活页夹,并使用Form[“Option\u Value”+i]
来获取值。或者创建一个视图模型,该视图模型使用一个健全的信息模型来映射到数据库(看起来设计得不太好)