[英]How to call method from controller for each item in a list when the user click a button in View
我正在使用帶有EF6的ASP.Net MVC,我想允許用戶通過單擊“視圖”中的“發送”按鈕來發送電子郵件給學生列表,然后消息將發送給列表中的每個學生(學生的電子郵件地址存儲在列表中) )。 用戶將輸入他的姓名,電子郵件和消息,
用戶單擊視圖中的發送時,如何從控制器為每個學生調用聯系人方法?
public ActionResult Project(int? id)
{
mytable s = new mytable()
{
//this student list contains student information (name, email .. )
Student = (from ss in db.Student
join sp in db.Stu_Projects on ss.studentId equals
sp.StuId
where sp.PId == id
select ss).ToList()
};
return View(s);
}
//I want to call this method for each student in the list when the user click send button in the view
[HttpPost]
[ValidateAntiForgeryToken]
public async Task ContactAsync(String FromName, String FromEmail, String Message,String to)
{
if (ModelState.IsValid)
{
var body = ".....";
var message = new MailMessage();
message.To.Add(new MailAddress(to)); // receiver (each student in the list)
message.Subject = "Testing";
message.Body = string.Format(body, FromName, FromEmail, Message);
message.IsBodyHtml = true;
using (var smtp = new SmtpClient())
{
await smtp.SendMailAsync(message);
}
}
}
@model -------- @{ /**/ ViewBag.Title = "Project";} <form> Email <input type="text" name="email" placeholder="your email..." id="from"> Subject <input type="text" name="subject" placeholder="Subject..." id="contact-subject"> Message <textarea name="message" placeholder="Message..." id="contact-message"></textarea> <button type="submit" class="btn">Send message</button> </form>
您可以在razor視圖下嘗試此操作。
@model --------
@{
/**/
ViewBag.Title = "Project";
}
<form>
Email
<input type="text" name="email" placeholder="your email..." id="email">
Subject
<input type="text" name="contact-subject" placeholder="Subject..." id="contact-subject">
Message
<textarea name="contact-message" placeholder="Message..." id="contact-message"></textarea>
<button type="submit" class="btn">Send message</button>
</form>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.