Asp.net mvc angular和asp mvc有些不同-通过modal发送电子邮件

Asp.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

我正在尝试做一些不同的事情,所以我希望你能和我一起工作。我的目标是在asp mvc应用程序中创建一个有角度的单页应用程序。我有自己的理由,但其中之一是我喜欢两者的一些好处。所以我的问题是。是否可以从角度模式中使用webmail帮助器

这是我的一些代码。我感觉自己很接近,但现在我不确定它是如何与我的控制器交互的

电子邮件控制器-ASP

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>