我的视图中有类似的内容
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/ViewMasterPage.Master"
Inherits="System.Web.Mvc.ViewPage<MVC.ViewModels.EditViewModel>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<%
Html.EnableClientValidation();%>
<%
using (Html.BeginForm("Edit", "Edit", FormMethod.Post, new { @class = "myform" }))
{%>
<%for (int i = 0; i < Model.Activity.Count; ++i)
{%>
<div class="editor-field">
<%:Html.DropDownListFor(x => x.Activity[i].SelectedActivity, Model.SelectListActivity)%>
<input class="button" type="submit" value="<%:i%>" name="add_Button[<%:i%>]"/>
</div>
<%}
}
%>
</asp:Content>
控制器:
[HttpPost, Authorize]
public ActionResult Edit(string[] add_Button, FormCollection collection)
当我进入我的控制器时,只捕获了索引[0]上的按钮,为什么会这样?
ICollection<string> add_Button and string[] add_Button
都不适合我。
换句话说,你如何发送这样的按钮数组:
<input class="button" type="submit" value="Add" name="add_Button[0]" id="Submit3" />
<input class="button" type="submit" value="Add" name="add_Button[1]" id="Submit4" />
<input class="button" type="submit" value="Add" name="add_Button[2]" id="Submit5" />
<input class="button" type="submit" value="Add" name="add_Button[3]" id="Submit6" />
<input class="button" type="submit" value="Add" name="add_Button[4]" id="Submit7" />
<input class="button" type="submit" value="Add" name="add_Button[5]" id="Submit8" />
感谢您的帮助
答案 0 :(得分:0)
首先,您需要将DIV设为FORM字段以包含您的输入。
其次,要增加i的值,你需要让它说i ++而不是++ i。
最后,如果您只想重复按钮,则需要在按钮周围移动for循环,而不是在div和下拉列表周围。
<% for (int i= 0; i < Model.Activity.Count; i++)
{ %>
<input class="button" type="submit" value="Add" name="button[<%: i.ToString() %>]" id="Submit<%: i.ToString() %>" />
<% } %>
希望这有帮助!
答案 1 :(得分:0)
好的....我发现了一些有趣的东西。
我的控制器
public ActionResult Edit(String[] add_Button, FormCollection collection)
除了第一个按钮之外单击的任何按钮都转到FormCollection。
所以如果我点击add_Button [1],它实际上会转到集合[“add_Button [1]”]
答案 2 :(得分:0)
正如所承诺的,这是我对您更新的来源的回答。
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/ViewMasterPage.Master"
Inherits="System.Web.Mvc.ViewPage<MVC.ViewModels.EditViewModel>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" runat="server">
<%
Html.EnableClientValidation();%>
<% for (int i = 0; i < Model.Activity.Count; i++)
{%>
<% using (Html.BeginForm("Edit", "Edit", FormMethod.Post, new { @class = "myform" }))
{%>
<div class="editor-field">
<%:Html.DropDownListFor(x => x.Activity[i].SelectedActivity, Model.SelectListActivity)%>
<input class="button" type="submit" value="<%: i.ToString() %>" name="add_Button[<%: i.ToString() %>]"/>
</div>
<%}
}
%>
</asp:Content>