我有一个看起来像这样的EditorFor模板,
@{
Layout = null;
@Html.EditorFor(model => model.Name)
@Html.EditorFor(model => model.Value)
}
表示键/值对列表。这是模型。
public List<NameValuePair> Parameters { get; set; }
这会生成一个可编辑框列表。我需要删除一个特定的元素(所以当页面刷新整个&#34;行&#34;消失了)。我无法找到要传递给控制器中删除功能的元素的索引。有没有一种简单的方法可以在EditorFor模板中找到特定的索引?
更新 -
这就是视图中的代码。这显示了参数列表。
@Html.LabelFor(model => model.Parameters)
@Html.EditorFor(model => model.Parameters)
<input type="submit" name="command" value="addParam" class="btn btn-default btn-primary" />
这就是我试图在控制器中使用的删除方法。
public ActionResult DeleteParamaters(long id, int index)
{
var templateStep = Biz.GetTemplateStep(id);
templateStep.Parameters.RemoveAt(index);
return View("CreateTemplateStep", templateStep);
}
我的最终目标是每个列表项旁边的删除按钮,点击后将从列表中删除该特定项。
答案 0 :(得分:0)
您可以将additionalViewValues
对象传递给EditorFor函数。
一个匿名对象,可以包含其他视图数据 合并到创建的ViewDataDictionary实例中 用于模板。
因此,当您遍历列表并为每个列表呈现编辑器时,您可以将任何数据传递给模板,这样您就可以将其发送到控制器以识别您的数据。
关于如何跨模板使用其他数据,有几个例子。例如:Pass Additional ViewData to a Strongly-Typed Partial View