查找EditorFor模板

时间:2015-10-22 15:49:50

标签: javascript c# html asp.net-mvc razor

我有一个看起来像这样的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);
    }

我的最终目标是每个列表项旁边的删除按钮,点击后将从列表中删除该特定项。

1 个答案:

答案 0 :(得分:0)

您可以将additionalViewValues对象传递给EditorFor函数。

  

一个匿名对象,可以包含其他视图数据   合并到创建的ViewDataDictionary实例中   用于模板。

因此,当您遍历列表并为每个列表呈现编辑器时,您可以将任何数据传递给模板,这样您就可以将其发送到控制器以识别您的数据。

关于如何跨模板使用其他数据,有几个例子。例如:Pass Additional ViewData to a Strongly-Typed Partial View