Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 发送电子邮件的Ajax调用不起作用。_Javascript_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

Javascript 发送电子邮件的Ajax调用不起作用。

Javascript 发送电子邮件的Ajax调用不起作用。,javascript,jquery,ajax,asp.net-mvc,Javascript,Jquery,Ajax,Asp.net Mvc,我对JQuery非常陌生。大家可以告诉我我的代码有什么问题吗?我想通过ajax发送一封电子邮件,然后在div中填充一个返回的字符串。我试图将数据从我的视图发送到我的控制器使用数据,然后发回一个字符串添加到Dom中。我该怎么做呢。感谢您的时间和努力。干杯 我的观点 <!-- Contact form --> <form id="contact-form" name="contact-form" method="POST" data-name="Co

我对JQuery非常陌生。大家可以告诉我我的代码有什么问题吗?我想通过ajax发送一封电子邮件,然后在div中填充一个返回的字符串。我试图将数据从我的视图发送到我的控制器使用数据,然后发回一个字符串添加到Dom中。我该怎么做呢。感谢您的时间和努力。干杯

我的观点

<!-- Contact form -->
                <form id="contact-form" name="contact-form" method="POST" data-name="Contact Form">

                    <div class="row">

                        <!-- Full name -->
                        <div class="col-xs-12 col-sm-6 col-lg-6">
                            <div class="form-group">
                                <input type="text" id="name" class="form form-control" placeholder="Write your name" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Write your name'" name="name" data-name="Name" required>
                            </div>
                        </div>

                        <!-- E-mail -->
                        <div class="col-xs-12 col-sm-6 col-lg-6">
                            <div class="form-group">
                                <input type="email" id="email" class="form form-control" placeholder="Write your email address" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Write your email address'" name="email" data-name="Email Address" required>
                            </div>
                        </div>

                        <!-- Subject -->
                        <div class="col-xs-12 col-sm-12 col-lg-12">
                            <div class="form-group">
                                <input type="text" id="subject" class="form form-control" placeholder="Write the subject" onfocus="this.placeholder = ''" onblur="this.placeholder = 'Write the subject'" name="subject" data-name="Subject">
                            </div>
                        </div>

                        <!-- Message -->
                        <div class="col-xs-12 col-sm-12 col-lg-12 no-padding">
                            <div class="form-group">
                                <textarea id="text-area" class="form textarea form-control" placeholder="Your message here... 20 characters Min." onfocus="this.placeholder = ''" onblur="this.placeholder = 'Your message here... 20 characters Min.'" name="message" data-name="Text Area" required></textarea>
                            </div>
                        </div>

                    </div>

                    <!-- Button submit -->
                    <button type="submit" id="valid-form" class="btn btn-color">Send my Message</button>

                </form>
                <!-- /. Contact form -->

                <div id="block-answer">
                    <div id="answer"></div>
                </div>
我的控制器

[HttpPost]
    public string SendMessage(string name, string email, string subject, string message)
    {
        var savingStatus = "Success";
        return savingStatus;
    }

您正在使用字符串作为字段名,请用该字符串替换数据

data: { name: name, email: email, subject: subject, message: message },

我确实在你的成功函数中看到了一个输入错误。它应该是
$('#答案')。文本(状态)只需执行
数据:$(this).serialize(),
。您不需要单独获取每个输入的值,然后从中创建JS对象。即使这是真的,先生。我将如何点击控制器。我根据id假设这是表单的id,但没有使用
单击
,因此现在我不确定这是什么。无论如何,唯一能防止它击中您的控制器的是1)由
#valid form
标识的元素实际上没有被点击,或者2)URL
/Home/SendMessage
实际上没有路由到您认为它会到达的地方。您也没有取消默认的提交-
$(“#valid form”)。单击(函数(e){e.preventDefault();……
请在控制器名称前使用站点url为控制器添加完整url如何提供完整有效的url。由于我是新手,所以我尝试了所有.net 4!和mvc 4
data: { name: name, email: email, subject: subject, message: message },