使用不同的表单将电子邮件发送到不同的电子邮

时间:2018-05-28 10:08:04

标签: c# ajax model-view-controller

我有2个表单,一个用于打印,一个用于云,在每个表单中我有一个输入字段,用户应该在输入字段中写入他们的电子邮件地址,当用户提交按钮例如在打印表单中时,它应该发送一个电子邮件与用户的电子邮件地址(只需输入feild通知)打印电子邮件地址,当用户在Cloud Form中提交按钮时,它应该发送一封电子邮件到Cloud Email地址。

例如;。如果Form = Print将Print Form中的Input字段的值发送到Print Email Addresse

如果Form = Cloud,则将Cloud Form中的Input字段的值发送到Cloud Email Address

我可以得到它只适用于One Form,例如Print,但我不知道如何让这些东西适用于其他形式如云。任何人都可以指出我正确的方向!谢谢:)

PrintForm HTML标记:

 <form id="PrintForm">
                        <input type="text" id="txtEmail" />

                        <input type="submit"  value="Send" />
                    </form> <br>

CloudForm HTML标记:

 <form id="CloudForm">
                        <input type="text" id="txtEmail" />

                        <input type="submit"  value="Send" />
                    </form>

AJAX:

<script>
    $(document).ready(function () {

        $("#PrintForm").submit(function (e) {

            e.preventDefault();

            var email = $("#txtEmail").val();

            $.ajax({
                type: 'POST',
                url: "/xxx/AjaxMethod",
                dataType: 'json',
                data:  {
                email: email,
                },
                success: function (status) {
                    console.log('Send');
                },
                error: function () {
                    console.log('something went wrong - debug it!');
                }
            });

        });


    });
</script><br>

控制器:

        [HttpPost]
        public JsonResult AjaxMethod(string email)
        {

            var SubjectOne = "Print";
            var SendToPrint = "Print@Print.com";

            var errorMessage = "";

//BookingViewModel
            Booking book = new Booking { 
            Email = email,
            };


            try
            {
                // Initialize WebMail helper
                WebMail.SmtpServer = "smtp";
                WebMail.SmtpPort = 25;
                WebMail.UserName = "email@email.com";
                WebMail.Password = "";
                WebMail.From = "email@email.com";
                WebMail.EnableSsl = true;
                WebMail.SmtpUseDefaultCredentials = false;


                // Send email
                WebMail.Send(to: SendToPrint,
                    subject: SubjectOne,
                    body: "email: " + email + "<br>"
                );

            }
            catch (Exception ex)
            {
                errorMessage = ex.Message;
            }

            return Json(book);

        }

3 个答案:

答案 0 :(得分:1)

在云表单上注册提交事件,就像您在打印表单中一样。

 $("#CloudForm").submit(function (e) {

        e.preventDefault();

        var email = $("#txtEmail").val();

        $.ajax({
            type: 'POST',
            url: "/xxx/AjaxMethod",
            dataType: 'json',
            data:  {
            email: email,
            },
            success: function (status) {
                console.log('Send');
            },
            error: function () {
                console.log('something went wrong - debug it!');
            }
        });

    });

如果CloudForm和PrintForm都位于同一页面上,则必须更改文本框输入的id,以便它们都具有唯一ID。

答案 1 :(得分:1)

将一个类添加到两个表单中:

<form id="PrintForm" id = printFormGroup">

<form id="CloudForm" id = printFormGroup">

然后修改你的AJAX以响应课程:

$(".printFormGroup").submit(function (e) {

这将涵盖具有相同类别的所有表单,并将返回用户输入的任何内容。

答案 2 :(得分:0)

您需要通过添加名为formType

的参数来更新Controller
[HttpPost]
public JsonResult AjaxMethod(string email, string formType)
{
     if(formType == "print")
     {
        //Perform print related stuff
     }
     else if(formType == "cloud")
     {
         //Perform cloud related stuff
     }
}

使用data: { email, formType: "print"}更新您的AJAX通话以获取打印表单

 $.ajax({
            type: 'POST',
            url: "/xxx/AjaxMethod",
            dataType: 'json',
            data:  {
               email: email,
               formType: "print"
            },
            success: function (status) {
                console.log('Send');
            },
            error: function () {
                console.log('something went wrong - debug it!');
            }
        });
云表单

data: { email, formType: "cloud"}

$.ajax({
            type: 'POST',
            url: "/xxx/AjaxMethod",
            dataType: 'json',
            data:  {
               email: email,
               formType: "cloud"
            },
            success: function (status) {
                console.log('Send');
            },
            error: function () {
                console.log('something went wrong - debug it!');
            }
        });
相关问题