【问题标题】:MVC 6 Tag Helpers and foreachMVC 6 标签助手和 foreach
【发布时间】:2023-04-07 10:47:01
【问题描述】:

为了显示集合中的项目,我会给标签标签助手的 asp-for 属性提供什么。下面的代码会产生编译错误。

@foreach (var item in Model)
{
    <label asp-for="item.BookingCode"></label>
}

【问题讨论】:

  • 什么是错误,在模型中,我认为您有相同项目的集合,所有项目将包含相同值的相同属性名称。
  • 是的,你是对的。我实际上是在寻找一种显示值的方法,但显然 MVC6 还没有标签助手。错误是范围内没有“项目”,这是有道理的,因为 Model.item 不存在。
  • @ConvertToInt32 - 实际上,即使我将
  • 不要使用 IEnumerable 作为模型尝试 IList
  • 你说你的模型是 IEnumerable。将其切换到 IList 就像在代码后面添加 '.ToList()' 一样。

标签: collections asp.net-core-mvc tag-helpers


【解决方案1】:

@ 字符转义默认模型 lambda 代码。因此您可以输入:

@foreach (var item in Model)
{
    <label asp-for="@item.BookingCode"></label>
}

【讨论】:

  • 在 1.0.0-rc1-update1 中,上面的代码只是打印“BookingCode”文本而不是 BookingCode 属性的实际值。还有其他解决方案吗?
  • 因为这是用于标签元素的 asp-for 默认为属性名称而不是 BookingCode 的值。使用不带元素的@item.BookingCode 来查看值。
  • &lt;label&gt; 的标签助手在这里不会那么重要。但是,如果您想使用它,正如@JoelCunningham 所说,使用&lt;label asp-for="@item.BookingCode"&gt;@item.BookingCode&lt;/label&gt; asp-for 值会将标题显示为属性名称,而 内的@item.BookingCode 将显示@item.BookingCode 的值。
【解决方案2】:

我有一个简单的方法来做一个列表并显示它的属性。

List<string> razones = new List<string>();
foreach (var item in _context.Reason)
{
    razones.Add (item.Description);
}
System.Diagnostics.Debug.WriteLine(razones.Count);

【讨论】:

    猜你喜欢
    • 2016-03-09
    • 2016-11-20
    • 2016-10-06
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    相关资源
    最近更新 更多