首页 文章

HTTP Post Error C#联系页面

提问于
浏览
0

我创建了一个MVC项目,我正在尝试构建一个联系页面,我的HTTP Post存在问题 . 基本上,当它被包含在内时,我会在页面上找到页面未找到错误(在提交表单之前等),当它不包括在内时没有问题 . 所有帮助表示赞赏

[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();
    }

编辑:'/'应用程序中的错误消息服务器错误 .

无法找到该资源 .

说明:HTTP 404.您要查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用 . 请查看以下网址,确保拼写正确 .

请求的URL:/ Home / Contact

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

2 回答

  • 0

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

  • 0

    如果我理解正确,那么在提交表单之前,您会收到页面未找到错误,这意味着您在加载表单时?如果是这种情况,我认为问题是因为当您将操作标记为发布时,它将不会使用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将处理表单的帖子 .

相关问题