首页 > 解决方案 > 发布后在网站上获取 500 内部服务器错误联系表

问题描述

我使用 ASP .Net Core 创建了一个站点,并且在发布前测试时在我创建的站点上提交联系表单时它工作正常,但在发布后我收到 500 个内部服务器错误。我是这些东西的新手,请帮忙。如果您想现场测试,联系表格的链接:https ://www.alitural.com/home/contact

C# 代码

[HttpPost]
    public IActionResult Contact(string name, string email, string subject, string message)
    {
        if (message != null)
        {
            SmtpClient smtp = new SmtpClient();
            smtp.UseDefaultCredentials = false;
            smtp.Credentials = new NetworkCredential("", "");
            smtp.Port = 587;
            smtp.Host = "smtp.gmail.com";
            smtp.EnableSsl = true;

            MailMessage msg = new MailMessage();
            msg.To.Add("");
            msg.From = new MailAddress("");
            msg.Subject = subject;
            msg.Body = " <p> Name : " + name + " </p> <p> Email : " + email + " </p><p> Subject : " + subject + " </p> <p> Message : " + message + " </p>";
            msg.IsBodyHtml = true;

            smtp.Send(msg);
        }

        return View();
    }

js代码

     function sub() {
        let formData = {};
        for (var i = 0; i < inputs.length; i++) {
            let fieldName = inputs[i].firstElementChild.getAttribute('Name');
            let fieldValue = inputs[i].firstElementChild.value;
            formData[fieldName] = fieldValue;
        }
        var name = document.getElementById("name");
        var email = document.getElementById("email");
        var subject = document.getElementById("subject");
        var message = document.getElementById("message");

        if (name.value == "" && email.value == "" && message.value == "") {
            for (var i = 0; i < inputs.length; i++) {
                if (inputs[i].firstElementChild.value == "") {
                    if (inputs[i].childElementCount != 2) {
                        inputs[i].innerHTML += '<label for="name" class="error">This field is required.</label>';
                    }
                }
            }
        } else {
            let requestData = '';
            let request = new XMLHttpRequest();
            let dataArray = [];

            for (let property in formData) {
                dataArray.push(`${property}=${formData[property]}`);
                requestData = dataArray.join('&');
            }
            request.onreadystatechange = function () {
                console.log(this.readyState);
                if (this.readyState == 4 && this.status == 200) {
                    name.value = "";
                    email.value = "";
                    message.value = "";
                    subject.value = "";
                    alert.className = "alert alert-success";
                    alert.innerHTML = "Your message has been send!";
                    setTimeout(function () {
                        $(alert).fadeOut();
                    }, 8000);
                }
                else {
                        alert.className = "alert alert-danger";
                        alert.innerHTML = "An error occured try again later!";
                }
            };

            request.open("POST", "/Home/Contact", true);
            request.setRequestHeader(
                "Content-type",
                "application/x-www-form-urlencoded",
            );
            request.send(requestData);
        }

标签: javascriptc#asp.net-coreweb-site-projecthttp-status-code-500

解决方案


推荐阅读