Asp.net mvc angular和asp mvc有些不同-通过modal发送电子邮件
我正在尝试做一些不同的事情,所以我希望你能和我一起工作。我的目标是在asp mvc应用程序中创建一个有角度的单页应用程序。我有自己的理由,但其中之一是我喜欢两者的一些好处。所以我的问题是。是否可以从角度模式中使用webmail帮助器 这是我的一些代码。我感觉自己很接近,但现在我不确定它是如何与我的控制器交互的 电子邮件控制器-ASPAsp.net mvc angular和asp mvc有些不同-通过modal发送电子邮件,asp.net-mvc,angularjs,Asp.net Mvc,Angularjs,我正在尝试做一些不同的事情,所以我希望你能和我一起工作。我的目标是在asp mvc应用程序中创建一个有角度的单页应用程序。我有自己的理由,但其中之一是我喜欢两者的一些好处。所以我的问题是。是否可以从角度模式中使用webmail帮助器 这是我的一些代码。我感觉自己很接近,但现在我不确定它是如何与我的控制器交互的 电子邮件控制器-ASP public class EmailController : Controller { // // GET: /Home/ public Vie
public class EmailController : Controller
{
//
// GET: /Home/
public ViewResult Index()
{
int hour = DateTime.Now.Hour;
ViewBag.Greeting = hour < 12 ? "Good Morning" : "Good Afternoon";
return View();
}
[HttpGet]
public ViewResult RequestForm()
{
return View();
}
[HttpPost]
public ViewResult RequestForm(EmailRequest emailrequest)
{
if (ModelState.IsValid)
{
// TODO: Email response to the party organizer
return View("Thanks", emailrequest);
}
else
{
// there is a validation error
return View();
}
}
谢谢cshtml
@model Project.Models.EmailRequest
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Thanks</title>
</head>
<body>
@{
try
{
WebMail.SmtpServer = "myserver";
WebMail.SmtpPort = myport;
WebMail.EnableSsl = false;
WebMail.UserName = "myemail";
WebMail.Password = "mypass";
WebMail.From = "myemail";
WebMail.Send("myemail", "Request Notification",
Model.Name + " is " + ((Model.WillAttend ?? false) ? "" : "not")
+ "attending");
}
catch (Exception)
{
@:<b>Sorry - we couldn't send the email to confirm your RSVP. </b>
}
}
<div>
<h1>Thank you, @Model.Name!</h1>
@if (Model.WillAttend == true)
{
@:I'ts great that you're coming. The drinks are already in the fridge!
}
else
{
@:Sorry to hear that you can't make it, but thanks for letting us know.
}
</div>
</body>
</html>
我目前在Thanke.cshtml页面中有webmail smtp设置等,但这似乎是使用控制器的标准asp mvc方式。我真的不知道我是否已经向大家展示了我的目标,但是有没有一种方法可以在不包含modalusers可以看到的源代码中的设置的情况下,从modal提交到我的webmail设置
这是一个可怕的想法,还是我有点接近某个可能的想法。我认为Thank.cshtml中的WebMail代码应该放在您的控制器中。很难说出你的问题是什么,你希望未来的流程是如何发生的,你希望“谢谢”出现在表单所在的同一个模式中吗?我会打一个AJAX电话发送邮件并返回成功,它甚至可以从视图返回HTML,如果您愿意,您可以在modal中替换它…我很抱歉,我知道我的问题太多了。我基本上是在尝试从asp.NETMVC项目中的角度模式发送电子邮件。我上面的逻辑在模式之外工作,但我不确定如何调整我所拥有的和我想要的。我对这方面的很多方面都比较陌生,所以这可能会增加一些问题。谢谢你的帮助。
public class EmailRequest
{
[Required(ErrorMessage = "Please enter your name")]
public string Name { get; set; }
[Required(ErrorMessage = "Please enter your email address")]
[RegularExpression(".+\\@.+\\..+",
ErrorMessage = "Please enter a valid email address")]
public string Email { get; set; }
[Required(ErrorMessage = "Please enter your phone number")]
public string Phone { get; set; }
[Required(ErrorMessage = "Please specify whether you'll attend")]
public bool? WillAttend { get; set; }
}
@model Project.Models.EmailRequest
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Thanks</title>
</head>
<body>
@{
try
{
WebMail.SmtpServer = "myserver";
WebMail.SmtpPort = myport;
WebMail.EnableSsl = false;
WebMail.UserName = "myemail";
WebMail.Password = "mypass";
WebMail.From = "myemail";
WebMail.Send("myemail", "Request Notification",
Model.Name + " is " + ((Model.WillAttend ?? false) ? "" : "not")
+ "attending");
}
catch (Exception)
{
@:<b>Sorry - we couldn't send the email to confirm your RSVP. </b>
}
}
<div>
<h1>Thank you, @Model.Name!</h1>
@if (Model.WillAttend == true)
{
@:I'ts great that you're coming. The drinks are already in the fridge!
}
else
{
@:Sorry to hear that you can't make it, but thanks for letting us know.
}
</div>
</body>
</html>