尝试打印字符串的前 250 个字符,但收到"参数超出范围执行"错误



我将LINQ结果绑定到ListView,并尝试仅从"摘要"列打印前250个字符,但当我尝试使用Substring时,我得到错误:

系统。Index和length必须指向字符串中的一个位置。参数名称:长度

导致错误的代码是:

<%#:Eval("Synopsis").ToString().Substring(0,250)%>

如果我删除ToString和Substring,错误消失,但打印整个摘要。我做错了什么?

当您的开始索引或长度超出字符串长度范围时,您将获得ArgumentOutOfRangeException异常。在您的情况下,我会说字符串很可能已经少于250个字符。您可能想要这样的内容:

<%#:Eval("Synopsis").ToString().Length > 250 ? Eval("Synopsis").ToString().Substring(0,250) : Eval("Synopsis").ToString()%>

这意味着概要长度小于250个字符。这可以通过检查字符串的长度是否大于250并减少请求的长度来轻松修复。我不熟悉LINQ,但这里有一个伪代码的解决方案:

var length_of_request;
if length of synopsis < 250 then:
     length_of_request = length of synopsis
else:
     length_of_request = 250

然后调用SubString, length_of_request作为第二个参数

最新更新