Razor视图中的String.Trim()

时间:2016-07-20 08:25:44

标签: c# asp.net-mvc razor

为什么String.Trim()在Razor视图中使用string.empty时会抛出异常:

console.log('@Model.Test.FirstOrDefault().Trim()');

(列表为空,所以我得到string.empty),然后:

Server Error in '/' Application.
Object reference not set to an instance of an object.
(...)'
Line 326:            console.log('@Model.Test.FirstOrDefault().Trim()');

2 个答案:

答案 0 :(得分:4)

如果列表为空,那么你就不会得到string.Empty而是null,因为空字符串列表的第一个元素的默认值是null你可以不要在空对象上调用.Trim()

如果您使用的是C#6,那么您可以这样做:

console.log('@Model.Test.FirstOrDefault()?.Trim()');

请注意在.Trim()之前添加一个问号,它会进行空检查,以便只有在左侧不为空时才会调用修剪。

或者你可以这样做:

console.log('@(Model.Test.FirstOrDefault() ?? string.Empty).Trim()');

哪个使用null合并运算符用string.Empty显式替换null,并且在以前版本的C#中可用

答案 1 :(得分:0)

你可能在某个地方null。您可以使用c#6中的elvis运算符轻松克服它:

console.log('@Model.Test?.FirstOrDefault()?.Trim()??"Null property"');