Razor CSHTML IF语句

use*_*087 5 razor

这里有人可以帮助我吗?我有以下代码:

@inherits umbraco.MacroEngines.DynamicNodeContext
@{ 
    var node = @Model.NodeById(1257);
}
    <div class="Top10"> 
    <h1>Newest</h1>

@foreach (var article in node.Descendants().Where("Visible && (NodeTypeAlias = \"Article\" || NodeTypeAlias = \"sergrein\" || NodeTypeAlias = \"solomyndagrein\")").OrderBy("createDate desc").Take(10))
    {                   
         <a href="@article.Url"><h2>@article.createDate.ToString("dd/MM") | @article.title</h2></a>    
    }

    </div>
Run Code Online (Sandbox Code Playgroud)

我想要的是:如果@ article.title的长度大于例如10个字符,则它需要返回10个字符,后跟...(例如:“ this_is_a _...”)。如果@ article.title少于10个字符,则只能显示完整的标题长度。如何截断?

Chr*_*s S 1

通常我会说在你的模型中执行此操作,但看起来你正在使用 Umbraco 的模型。

所以你可以这样做:

@inherits umbraco.MacroEngines.DynamicNodeContext
@{ 
    var node = @Model.NodeById(1257);
}
<div class="Top10"> 
<h1>Newest</h1>

@foreach (var article in node.Descendants().Where("Visible && (NodeTypeAlias = \"Article\" || NodeTypeAlias = \"sergrein\" || NodeTypeAlias = \"solomyndagrein\")").OrderBy("createDate desc").Take(10))
{                
    {
        var title = article.title;
        if (title.Length > 10)
            title = title.Substring(0,10) + "...";
    }
    <a href="@article.Url"><h2>@article.createDate.ToString("dd/MMM") | @title</h2></a>    
}

</div>
Run Code Online (Sandbox Code Playgroud)