首页 > 解决方案 > 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>
        }   
}

我可以获取所有表格列值,例如 Column1、Colum2。但我想计算一个显示值。我可以使用以下方法在控制器中获取此值:

控制器:

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 表的列中。如何为我的表格行传递这个字符串值?我希望我能解释一下。

感谢帮助。

标签: asp.netasp.net-mvcrazor

解决方案


很难看到发生了什么,但我相信你的一般方法需要如下。向您的类添加一个属性MyTable,使其看起来像这样

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

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

不是你问的,但我认为GetCalculateValue如果改为这个,你的可读性会更高。

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

推荐阅读