0

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

在控制器中:

 [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");
    }

在视图中:

"input type="checkbox" name="check" value="<%: item.ProfileId %>" /> " 用于表..

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

4

2 回答 2

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"/>
<% } %>
<%} %>
于 2012-10-04T06:27:34.670 回答
0

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

此外,您的控制器上的 Request.Form["nameOfCheckbox"] 应该可以使用不同复选框的值

于 2012-10-04T06:40:21.410 回答