在 Html.DisplayFor 中的 table 循环中添加子字符串
Adding Substring in table loop in Html.DisplayFor
我只是问如何在 Razor 中实现 Substring 代码 Html DisplayFor
实际上它在工作之前我添加了子字符串以获取 table 中的前 5 个数字然后我遇到了错误
An exception of type 'System.InvalidOperationException' occurred in System.Web.Mvc.dll but was not handled in user code
Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
这是我的一组代码:
<tbody>
@for (var i = 0; i < Model.Cards.Count; ++i)
{
var counter = i + 1;
<tr>
<td valign="middle">
<p class="small">@counter</p>
</td>
<td valign="middle">
<p class="small">@Html.DisplayFor(x => x.Cards[i].Number.Substring(0,5))</p>
</td>
</tr>
}
</tbody>
提前致谢!
正如斯蒂芬在评论中所说,在您的视图中间使用 .Substring
并没有真正意义。
相反,在您的 ViewModel(定义您的 Number
属性 的视图模型)中,添加以下内容 属性 :
public string DisplayableNumber => Number.Length > 5 ? Number.ToString().Substring(0, 5) : "WhatYouWantHere";
这适用于 C# 5+,否则您可以使用旧方法并在默认构造函数中对其进行初始化。
然后,在您的视图中使用它:
@Html.DisplayFor(x => x.Cards[i].DisplayableNumber)
此外,在 ViewModel 中使用这种类型的 属性 是一种很好的做法,因为视图不应处理任何逻辑。
我只是问如何在 Razor 中实现 Substring 代码 Html DisplayFor
实际上它在工作之前我添加了子字符串以获取 table 中的前 5 个数字然后我遇到了错误
An exception of type 'System.InvalidOperationException' occurred in System.Web.Mvc.dll but was not handled in user code
Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
这是我的一组代码:
<tbody>
@for (var i = 0; i < Model.Cards.Count; ++i)
{
var counter = i + 1;
<tr>
<td valign="middle">
<p class="small">@counter</p>
</td>
<td valign="middle">
<p class="small">@Html.DisplayFor(x => x.Cards[i].Number.Substring(0,5))</p>
</td>
</tr>
}
</tbody>
提前致谢!
正如斯蒂芬在评论中所说,在您的视图中间使用 .Substring
并没有真正意义。
相反,在您的 ViewModel(定义您的 Number
属性 的视图模型)中,添加以下内容 属性 :
public string DisplayableNumber => Number.Length > 5 ? Number.ToString().Substring(0, 5) : "WhatYouWantHere";
这适用于 C# 5+,否则您可以使用旧方法并在默认构造函数中对其进行初始化。
然后,在您的视图中使用它:
@Html.DisplayFor(x => x.Cards[i].DisplayableNumber)
此外,在 ViewModel 中使用这种类型的 属性 是一种很好的做法,因为视图不应处理任何逻辑。