我有一个很奇怪的问题。所以,我的结构是这样的
<div id="tasks">
@Html.Partial("_Tasks", tasks)
</div>
在 _Tasks 我对所有任务进行 foreach 并且对于每个任务我都有额外的部分
...
@Html.Partial("_Time", new TimeViewModel(task))
...
在_Time里面我有表格
...
@Html.TextBoxFor(m => m.Name)
....
因此,在一个视图中,我渲染了一个局部,然后又在内部渲染了多个局部,并在其中呈现了一个表单。当我执行页面加载时,它可以工作。问题始于我使用 ajax 时,因此我对 Time 执行编辑并发布到服务器并使用返回的 html 更新#tasks。
我是我的控制器动作,我有......
...
return View("_Tasks", tasks);
现在的问题是@Html.TextBoxFor(m => m.Name) 生成的所有输入都具有相同的值。为什么?如果我做
@Html.DisplayFor(m => m.Name)
我工作得很好。我也试过
@Html.TextBoxFor(m => m.Name, new { Value = Model.Name })
它有效,但对我来说看起来很糟糕。
问题是,为什么会出现这种行为?为什么所有 TextBoxFor 都具有相同的值?