在循环时将字符串添加到Model.Variable Name的末尾

时间:2018-05-30 10:52:55

标签: c# asp.net-mvc razor

是否可以在剃刀中添加到model.variable的末尾。

例如:

@for (var a = 1; 6 > a; a++)
       {
       @if (@Model.ContentSection+{a} != null)
       {

背景: 我有多个内容框,而不是复制和粘贴html 5次我想运行for循环来创建div,如果其中一个ContentSection中有内容。

在我的VM中我有ContentSection1,ContentSection2等。

我想要做的是将a的当前值添加到Model.ContentSection的末尾,这样当它通过添加来自@ Model.ContentSection2

的内容时

由于

1 个答案:

答案 0 :(得分:1)

是。首先,你应该将followinf代码添加到你的类模型中(这将通过Key访问模型的属性(例如Model [“Property1”]):

public object this[string propertyName]
{
   get { return this.GetType().GetProperty(propertyName).GetValue(this, null); }
   set { this.GetType().GetProperty(propertyName).SetValue(this, value, null); }
}

然后在剃刀(在你的圈内):

@if(Model["ContentSection" + a.ToString()] != null)
{
    Model["ContentSection" + a.ToString()]
}