ASP.NET MVC Razor视图中的增量

5
我希望在ASP.net MVC Razor视图中的Sr. No.列的第一列显示递增值。我正在尝试以下方法,但它没有起作用。只在该列中显示0 ++。我做错了什么。
 @{int i = 0;}

 <table class="table">
 <tr>
    <th>Sr No.</th>
    <th>
        @Html.DisplayNameFor(model => model.Name)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.ModifiedDate)
    </th>
    <th></th>
 </tr>

 @foreach (var item in Model)
 {
    <tr>
        <td>
            <span>@i++;</span>
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.Name)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.ModifiedDate)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id = item.CurrencyCode }) |
            @Html.ActionLink("Details", "Details", new { id = item.CurrencyCode }) |
            @Html.ActionLink("Delete", "Delete", new { id = item.CurrencyCode })
        </td>
    </tr>
 }

<span>i++;</span>,去掉 @。 - DarkMakukudo
2
<span>@(i++)</span>(需要括号) - user3559349
<span>@i</span> i++; - Divyang Desai
2
没有括号,@i++ 不会被视为单个表达式。输出 i 的值,并将 '++' 视为文本字面量进行输出。 - sachin
@(++i) 这对我来说是有效的,但所有三个答案都是正确的。 - Prakash Joshi
4个回答

4
在Razor语法中,您应该为C#逻辑语句创建一个C#作用域。您可以尝试以下代码;
<td>
    <span>@(i++)</span>
</td>

2
您不能像这样使用它。最初的回答。
         <td>
            <span>@i++;</span>
        </td>

你需要像这样编写代码:

你需要将代码编写为:


         <td>
            <span>@i</span>
        </td>

你需要在<tr>标签后增加i的值。 我已经针对你的代码提供了解决方案。 "Original Answer"翻译成中文是"最初的回答"。
                              @{
                                   var i = 1; @*sr no will start from 1*@
                                }
                                <table class="table">
                                    <tr>
                                        <th>Sr No.</th>
                                        <th>
                                            @Html.DisplayNameFor(model => model.Name)
                                        </th>
                                        <th>
                                            @Html.DisplayNameFor(model => model.ModifiedDate)
                                        </th>
                                        <th></th>
                                    </tr>

                                    @foreach (var item in Model)
                                    {
                                        <tr>
                                            <td>
                                                <span>@i</span>
                                            </td>
                                            <td>
                                                @Html.DisplayFor(modelItem => item.Name)
                                            </td>
                                            <td>
                                                @Html.DisplayFor(modelItem => item.ModifiedDate)
                                            </td>
                                            <td>
                                                @Html.ActionLink("Edit", "Edit", new { id = item.CurrencyCode }) |
                                                @Html.ActionLink("Details", "Details", new { id = item.CurrencyCode }) |
                                                @Html.ActionLink("Delete", "Delete", new { id = item.CurrencyCode })
                                            </td>
                                        </tr>
                                        i++;
                                    }

希望一切顺利。最初的回答。

1
这应该可以工作:

@{int i = 0;}

     <table class="table">
     <tr>
        <th>Sr No.</th>
        <th>
            @Html.DisplayNameFor(model => model.Name)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.ModifiedDate)
        </th>
        <th></th>
     </tr>

     @foreach (var item in Model)
     {
        <tr>
            <td>
                <span>@(++i)</span>
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Name)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.ModifiedDate)
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id = item.CurrencyCode }) |
                @Html.ActionLink("Details", "Details", new { id = item.CurrencyCode }) |
                @Html.ActionLink("Delete", "Delete", new { id = item.CurrencyCode })
            </td>
        </tr>
     }

1
根据@Stephen Muecke的建议,您可以使用以下内容:


<span>@(i++)</span>

或者您可以像这样使用:

或者您可以像这样使用:

<span>@i</span> 
 i++;

这个 <span>@(i++)</span> 是可以工作的,但是这个 <span>@i</span> i++; 不行。 - Prakash Joshi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接