我需要根据所选的复选框向多个用户发送电子邮件。
在控制器中:
[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%>" /> " 对于一张桌子..
问题
无法将复选框选中的值传递给操作结果。
答案 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”]
上可用