在 ASP.NET MVC 应用程序中,我正在为管理员制定接受或拒绝新成员的逻辑。我显示了成员列表和两个按钮“接受”和“拒绝”,如下所示:
<% foreach (var mm in (ViewData["pendingmembers"] as List<MyMember>)) %>
<% { %>
<tr><td>Username:<%=mm.UserName %></td><td>
<tr><td>Firstname:<%=mm.FirstName %></td><td>
...etc...
<tr>
<td>
<% using (Html.BeginForm("AcceptPendingUser", "Admin"))
{ %>
<input type="submit" value="Accept" />
<% } %>
</td>
<td>
<% using (Html.BeginForm("RejectPendingUser", "Admin"))
{ %>
<input type="submit" value="Reject" />
<% } %>
</td>
</tr>
<% } %>
因此,待处理成员数据的列表位于 MyMember 对象列表中。每个 MyMember 对象都将打印出成员,并设置两个按钮供管理员接受或拒绝待定成员。
然后,在控制器中,我将这两个输入字段/表单的处理分开,如下所示:
public ActionResult AcceptPendingUser()
{
// TODO: Add code to save user into DB and send welcome email.
return RedirectToAction("Index");
}
public ActionResult RejectPendingUser()
{
// TODO: Add code to remove user from PendingUsers list and send rejection email.
return RedirectToAction("Index");
}
我想直接获取用户按下的按钮旁边的对象。
如何将 MyMember 对象从视图发送到控制器?
或者如何通过按下按钮发送数字索引?也许有一个隐藏字段?
最简单的选择可能是隐藏输入:
<input type="hidden" value="<%=mm.Key%>" name="key" id="key" />
(相应的名称;在每种形式中)
然后,两个控制器将采用一个名为“key”的参数(重命名以适应)。如果你想从多个输入解析对象,你需要一个ModelBinder
。当然,您可以考虑使用基于查询字符串的 url,而不是 2*n 表单,或者使用 jQuery(或其他一些脚本助手)之类的东西来提交数据,而无需表单(如果脚本可用)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)