HTTP Post Error C#联系人页面

本文关键字:联系人 Post Error HTTP | 更新日期: 2023-09-27 18:26:26

我创建了一个MVC项目,试图在其中构建一个联系人页面,但我的HTTPPost出现了问题。基本上,当它被包括在内时,我会收到一个页面未找到的错误(在提交表格等之前),当它没有被包括在内的时候,没有问题。感谢提供的所有帮助

  [HttpPost]
    public ActionResult Contact(ContactModels c)
    {
        ViewBag.Message = "Your contact page.";
        if (ModelState.IsValid)
        {
            try
            {
                MailMessage msg = new MailMessage();
                SmtpClient client = new SmtpClient();
                MailAddress from = new MailAddress(c.Email.ToString());
                StringBuilder sb = new StringBuilder();
                msg.To.Add("ag@gmail.com");
                msg.Subject = "Contact";
                msg.IsBodyHtml = false;
                client.Host = "smtp.gmail.com";
                client.Port = 587;
                client.EnableSsl = true;
                client.DeliveryMethod = SmtpDeliveryMethod.Network;
                client.Credentials = new System.Net.NetworkCredential("your gmail email address", "your gmail email address password");
                sb.Append("First Name: " + c.FirstName);
                sb.Append(Environment.NewLine);
                sb.Append("last Name: " + c.LastName);
                sb.Append(Environment.NewLine);
                sb.Append("Email: " + c.Email);
                sb.Append(Environment.NewLine);
                sb.Append("Comments: " + c.Comment);
                msg.Body = sb.ToString();
                client.Send(msg);
                msg.Dispose();
                return View("Success");
            }
            catch (Exception)
            {
                return View("Error");
            }

        }
        return View();
    }

EDIT:错误消息"/"应用程序中的服务器错误。

找不到资源。

描述:HTTP 404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保拼写正确。

请求的URL:/主页/联系

版本信息:Microsoft.NET Framework版本:4.0.30319;ASP.NET版本:4.6.114.0

HTTP Post Error C#联系人页面

如果我理解正确,那么在提交表单之前,即在加载表单时,您收到了未找到页面的错误?如果是这样的话,我认为问题是因为当你将你的操作标记为post时,它不会运行get请求。加载表单的请求将是一个get请求。

请尝试创建第二个返回视图但接受get请求的操作。

public ActionResult Contact()
{
    return View();  // probably don't need to do much of anything here other than return the view with the form.
}

这将处理显示表单的get请求,然后您现有的Action将处理表单的发布。

你能试试这个吗client.enablessl=true;client.port=465;