在 ASP.net MVC 5 HTML 帮助程序扩展中动态创建 ID



我想在循环浏览视图中的列表时动态地向隐藏字段添加一个唯一 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。

我在这里检查过,但 OP 没有描述在他的案例中究竟什么有效。

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

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>元素吗?它会用于提交表单吗?

最新更新