我们遇到一个问题,即使用.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 - 不知道这是否提供了任何见解。
答案 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
。