ASP.NET MVC视图计算列



我有一个视图模型,我的视图模型中有一个表中的列表,我将模型绑定到我的视图,并将列表绑定到一个html表。

视图模型:

public IEnumerable<MyTable> TableObject { get; set; }

视图:

@if (Model.TableObject != null)
{
foreach(var item in Model.TableObject)
{
<td>@item.Column1</td> 
<td>@item.Column2</td>
<td>CalculatedVariable</td>
}   
}

我可以获得所有表列值,如第1列,第2列。但我想计算一个显示值。我可以用这样的方法在控制器中获得这个值:

控制器:

public string GetCalculateValue(List<MyTable> searchList, int compareValue)
{
string returnValue = String.Empty;
var _theList = searchList.Where(x => x.myValue == compareValue).ToList();
if (_theList.Count() > 1)
{
returnValue = "OK";
}
return returnValue;
}

我想将那个returnValue绑定到我的视图中,以便在html表的一列中显示。如何为表行传递此字符串值?我希望我能解释一下。

谢谢你的帮助。

很难看出发生了什么,但我认为您的一般方法需要如下。将属性添加到MyTable类中,使其看起来像以下

public class MyTable
{
public string Column1 {get; set;}
public string Column2 {get; set;}
public int myValue {get; set;}
public string CalculatedVariable {get; set;}
}

然后在控制器中为每个MyTable对象设置CalculatedVariable的值。然后,您将能够像其他属性一样显示计算变量。

不是你要求的,但我认为如果你的GetCalculateValue改成这样,它可以变得更可读。

public string GetCalculateValue(List<MyTable> searchList, int compareValue)
{
return searchList.Any(x => x.myValue == compareValue) ? "OK" : "";          
}

最新更新