将复选框选定值传递给模态弹出窗口

时间:2012-10-04 06:11:16

标签: asp.net-mvc-3

我需要根据所选的复选框向多个用户发送电子邮件。

在控制器中:

 [HttpGet]
        public ActionResult ChkBxSendMail(int[] check)
        {
            return View();
        }

    [HttpPost]
    public ActionResult ChkBxSendMail(int[] check, Profile profile, mail email)
    {
        foreach (var item in check)
        {
            var dbprofile = db.Profile.Single(p => p.ProfileId == item);
            string Emailid = dbprofile.EmailId;

            //var mailid = from p in db.Profile where p.ProfileId == id select p.EmailId;

            MailMessage msg = new MailMessage();
            MailAddress fromAddress = new MailAddress("xxxx");
            msg.From = fromAddress;
            msg.To.Add(Emailid);
            msg.Subject = email.Subject;
            msg.Body = email.Body;
            msg.Priority = MailPriority.High;

            SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
            client.EnableSsl = true;
            client.DeliveryMethod = SmtpDeliveryMethod.Network;
            client.Credentials = new NetworkCredential("xxxxxx", "xxxx");
            client.Send(msg);
        }
        return RedirectToAction("Profiles", "profile");
    }

在视图中:

"输入类型="复选框"命名="检查" value ="<%:item.ProfileId%>" /> " 对于一张桌子..

问题
   无法将复选框选中的值传递给操作结果。

2 个答案:

答案 0 :(得分:1)

你能用html.beginform试试这个

显示所有的视图代码吗?
<% using (Html.BeginForm("ChkBxSendMail", "here controler name", FormMethod.Post))
 { %>  
<table>
<tr> </tr> 
<% foreach (var item in Model) { %>
<tr> <td> <input type="checkbox" name="check" value="<%: item.ProfileId %>" /> </td>
<td> <%: Html.DisplayFor(modelItem => item.FirstName) %> </td>
<td> <%: Html.DisplayFor(modelItem => item.LastName) %> </td> 
 </tr> 
 </table>
 <input type="submit"/>
<% } %>
<%} %>

答案 1 :(得分:0)

复选框是独立的。您不应该使用具有相同名称属性的不同复选框。

此外,您的控制器上的不同复选框的值应该在Request.Form [“nameOfCheckbox”]

上可用