【问题标题】:Create N*M <table> in view by iterating through model items通过迭代模型项在视图中创建 N*M <table>
【发布时间】:2013-08-06 06:31:32
【问题描述】:

好吧,我很容易有一个模型:

@model IEnumerable<CompanyWebSite.Category>

遍历其中的项目并创建一个每行一个项目表来显示它们非常简单。

问题是我想创建一个这样的表:

<table>
    <tr>
        <td></td>
        <td></td>
    </tr>
    //
    // ...
    //
    <tr>
        <td colspan="2"> ... LastItem ...</td>
    </tr>
</table>

看起来很简单,但我做不到……!

@{
ViewBag.Title = "Products";
var last = Model.Last();
int i = 1;
}

<table id="tblCats">
@foreach(var item in Model)
{                        
    if (i == 1){
        <tr>
        @(i = 2)
    }

        @if (!item.Equals(last))
        {                                            
            <td>
                <a href="#"><h4>@item.CategoryName</h4></a>
                <label>@item.Description</label>
            </td>   
            if (i == 2)
            {
                </tr>
                i = 1;
            }
            else
                i = 2;         
        }
        else
        {
            <td colspan="2">

            </td>
            </tr>
        }                                                                                                  
}

由于第一个开头&lt;tr&gt;,Razor 很困惑,看不到结尾}s 和else 语句...我该怎么办...?!

【问题讨论】:

  • 尝试用 将 包围起来,这应该有助于 Razor 弄清楚。

标签: asp.net-mvc asp.net-mvc-4 razor asp.net-mvc-views


【解决方案1】:

你可以使用HtmlHelper.Raw method来帮助剃须刀

【讨论】:

  • 谢谢!实际上@juh​​an_h 的评论也是对的,但我不喜欢使用 标记,因为它使代码看起来很丑
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-13
相关资源
最近更新 更多