我在cshtml文件中通过模型检索了一些信息,我希望用户能够看到这些信息。在我的例子中,我有一些非常长的链接,我想要缩短,所以我添加了一个if-语句来检查长度并接受它的子字符串,但这对我不起作用,因为浏览器上没有输出。
在下面的代码中,我无法删除if-语句,因为在某些情况下,字符串比30个字符或空字符串更短。
我该怎么做?我的代码粘贴在下面:
@if (Model.Toxin[i].intake_link[0].Length > 30) { Model.Toxin[i].intake_link[0].Substring(0, 30); }发布于 2014-09-07 16:16:54
与其这样做,你可以使用Razor助手..。这些比较简单,只需将其放在文件的顶部即可。
@helper Truncate(string input, int length)
{
if (input.Length <= length) {
@input
} else {
@input.Substring(0, length)<text>...</text>
}
}
Then you need only use it like this:
@Truncate(Model.Toxin[i].intake_link[0], 30)如果你想让这个重复使用,你也可以这么做。在ScottGu的文章中了解更多关于这一点的内容
http://weblogs.asp.net/scottgu/asp-net-mvc-3-and-the-helper-syntax-within-razor
发布于 2014-09-07 12:32:54
@(string.Format("{0}", Model.Toxin[i].intake_link[0].Length > 30 ?Model.Toxin[i].intake_link[0].Substring(0, 30) : Model.Toxin[i].intake_link[0])但我建议您编写一些字符串扩展并使用它:
public static string TrimToMaxLength(this string value, int maxLength)
{
return (value == null || value.Length <= maxLength ? value : value.Substring(0, maxLength));
}然后在任何地方使用:
Model.Toxin[i].intake_link[0].TrimToMaxLength(30)发布于 2014-09-07 12:35:38
你可以用其他的
@if (Model.Toxin[i].intake_link[0].Length > 30)
{ Model.Toxin[i].intake_link[0].Substring(0, 30); }
else { Model.Toxin[i].intake_link[0]}https://stackoverflow.com/questions/25710043
复制相似问题