HTTP Post 错误 C# 联系页面
HTTP Post Error C# Contact page
我创建了一个 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 并确保拼写正确。
请求URL:/Home/Contact
版本信息:Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.114.0
你能试试这个吗
client.enablessl = 真;
client.port = 465;
如果我没理解错的话,您是在提交表单之前收到找不到页面错误,这意味着您在加载表单时?如果是这样,我认为问题在于当您将操作标记为 post 时,它不会 运行 获取请求。加载表单的请求将是一个获取请求。
请尝试创建第二个操作,该操作 returns 视图但接受获取请求。
public ActionResult Contact()
{
return View(); // probably don't need to do much of anything here other than return the view with the form.
}
这将处理将显示表单的获取请求,然后您现有的 Action 将处理表单的 post。
我创建了一个 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 并确保拼写正确。
请求URL:/Home/Contact
版本信息:Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.114.0
你能试试这个吗 client.enablessl = 真; client.port = 465;
如果我没理解错的话,您是在提交表单之前收到找不到页面错误,这意味着您在加载表单时?如果是这样,我认为问题在于当您将操作标记为 post 时,它不会 运行 获取请求。加载表单的请求将是一个获取请求。
请尝试创建第二个操作,该操作 returns 视图但接受获取请求。
public ActionResult Contact()
{
return View(); // probably don't need to do much of anything here other than return the view with the form.
}
这将处理将显示表单的获取请求,然后您现有的 Action 将处理表单的 post。