在ASP.net MVC 5 HTML Helper扩展中动态创建ID

时间:2018-08-23 16:13:07

标签: asp.net-mvc razor html-helper

当我遍历视图中的列表时,我想向隐藏字段动态添加唯一ID。

这就是我所拥有的:

@foreach (var food in Model)
            {
                if (counter != 0 && counter % 4 == 0)
                {
                    @:</div>
                    @:<div class="row el-element-overlay m-b-40">
                }

                <!-- /.usercard -->
                              <div class="white-box">
                                  <div class="el-card-item">
                                      <div class="el-card-avatar el-overlay-1">
                                          var theId = "food" + @counter;
                                          @Html.HiddenFor(m => food.Id, new { id = "@{@theId}" })
                                          <img src="@Url.Content("~/Images/"+ @Path.GetFileName(food.FilePath))" />

如何获取 theID 变量或使用@counter连接字符串以形成隐藏字段元素的ID。

我已经检查过here,但OP并未说明在他的案子中到底能起到什么作用。

1 个答案:

答案 0 :(得分:0)

从纯语法的角度来看,而不是

var theId = "food" + @counter;
@Html.HiddenFor(m => food.Id, new { id = "@{@theId}" })

您可以直接在帮助器内部进行串联:

@Html.HiddenFor(m => food.Id, new { id = "food" + counter.ToString() })

但是,

从编程的角度来看,@Html.HiddenFor(m => food.Id)是错误的,并且将产生错误。您能解释一下为什么要渲染隐藏的<input>元素吗?会用于提交表格吗?