Razor 视图中的 String.Trim()

Car*_*s28 0 c# asp.net-mvc razor

为什么在 Razor 视图中使用它时会String.Trim()引发异常,string.empty如下所示:

console.log('@Model.Test.FirstOrDefault().Trim()');
Run Code Online (Sandbox Code Playgroud)

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

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

Col*_*kay 5

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

如果您使用的是 C# 6,那么您可以执行以下操作:

console.log('@Model.Test.FirstOrDefault()?.Trim()');
Run Code Online (Sandbox Code Playgroud)

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

或者你可以这样做:

console.log('@(Model.Test.FirstOrDefault() ?? string.Empty).Trim()');
Run Code Online (Sandbox Code Playgroud)

它使用空合并运算符显式地用 a 替换空值,string.Empty并且在以前版本的 C# 中可用