在mvc视图中使用.any()是否有问题?

时间:2017-12-11 23:33:02

标签: c# asp.net-mvc linq .net-core

我们遇到一个问题,即使用.Any()linq方法会导致MVC局部视图出错。错误是使用该方法导致空引用错误 - 控制器中的相同linq代码不会导致此问题。

<div class="row">
@{
    //This line causes the page to throw an error:
    var isSelected = Model.ListOfReferenceType.Any(c => c.ReferenceType.Id == listTypeId);

    @if (isSelected)
    {
        <input type="checkbox" name="SomeCheckBox" id="SomeCheckBox" checked="checked" />
    }
    else
    {
        <input type="checkbox" name="SomeCheckBox" id="SomeCheckBox" />
    }

}
</div>

这是一个已知的问题,其中一些linq函数会导致渲染引擎出现问题?

请注意,我们正在使用.net核心和nancy - 不知道这是否提供了任何见解。

2 个答案:

答案 0 :(得分:2)

为了避免这种情况,添加一个construtor如果你没有一个construtor,那么在construtor内部启动属性ListOfReferenceType。这将避免该属性为null。

public class Example
{
    public Example()
    {
        this.data = new List<int>();
    }

    public List<int> data
    {
        get;
        set;
    }
}

答案 1 :(得分:1)

如果.Any返回null而不是来源或谓词null

Enumerable.Any Method (IEnumerable, Func)