首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在MVC中为输出添加条件?

如何在MVC中为输出添加条件?
EN

Stack Overflow用户
提问于 2014-09-07 12:13:30
回答 3查看 75关注 0票数 0

我在cshtml文件中通过模型检索了一些信息,我希望用户能够看到这些信息。在我的例子中,我有一些非常长的链接,我想要缩短,所以我添加了一个if-语句来检查长度并接受它的子字符串,但这对我不起作用,因为浏览器上没有输出。

在下面的代码中,我无法删除if-语句,因为在某些情况下,字符串比30个字符或空字符串更短。

我该怎么做?我的代码粘贴在下面:

代码语言:javascript
复制
@if (Model.Toxin[i].intake_link[0].Length > 30) { Model.Toxin[i].intake_link[0].Substring(0, 30); }
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-09-07 16:16:54

与其这样做,你可以使用Razor助手..。这些比较简单,只需将其放在文件的顶部即可。

代码语言:javascript
复制
@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

票数 1
EN

Stack Overflow用户

发布于 2014-09-07 12:32:54

代码语言:javascript
复制
@(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])

但我建议您编写一些字符串扩展并使用它:

代码语言:javascript
复制
public static string TrimToMaxLength(this string value, int maxLength)
{
    return (value == null || value.Length <= maxLength ? value : value.Substring(0, maxLength));
}

然后在任何地方使用:

代码语言:javascript
复制
Model.Toxin[i].intake_link[0].TrimToMaxLength(30)
票数 0
EN

Stack Overflow用户

发布于 2014-09-07 12:35:38

你可以用其他的

代码语言:javascript
复制
@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]}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25710043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档