对于我的项目,我需要知道编辑器模板中list元素的索引,以便将其赋予删除按钮。
例如我有一个模型:
public class Model
{
public int ID { get; set; }
public List<TemplateModel> Words { get; set; }
public Model()
{
}
}
第二个模型:
public class TemplateModel
{
public int secondID { get; set; }
public string word { get; set; }
public TemplateModel()
{
}
}
一个视图:
@Html.EditorFor(m=>m.Words)
和一个模板:
@model TemplateModel
<p>@Html.TextBoxFor(m=>m.word)</p>
<p>@Html.TextBoxFor(m=>m.secondId)</p>
<p><input type="button" name="Index should be here"></p>
是否可以从按钮列表中获取索引? mvc会自动创建像Words[index]
这样的名称,但它如何传输索引并且可以使用它吗?
更新 我找到了解决方案: 在CiewContext中是一种构建元素名称的方法。所以它也可以使用它并附加一个自己的字符串。所以我在编辑器模板中实现了这个:
<input type="button" name="@ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName("Delete")"/>
在html中它看起来像
<input type="button" name="Words[0].Delete">
答案 0 :(得分:0)
在List<TemplateModel>
的模板中尝试以下操作。
@model List<TemplateModel>
@for (var i = 0; i < Model.Count(); i++)
{
<p>@Html.TextBoxFor(m => m[i].Word)</p>
<p>@Html.TextBoxFor(m => m[i].SecondId)</p>
<p><input type="button" name="@(i)"></p>
}