HTTP Post错误C#联系人页面
我已经创建了一个MVC项目,我正在尝试构建一个联系人页面,但我的HTTP帖子有问题。基本上,当它被包括,我得到一个页面上没有找到错误的页面(在提交表格等),当它没有被包括没有问题。 谢谢你的帮助HTTP Post错误C#联系人页面,c#,model-view-controller,smtp,contact-form,C#,Model View Controller,Smtp,Contact Form,我已经创建了一个MVC项目,我正在尝试构建一个联系人页面,但我的HTTP帖子有问题。基本上,当它被包括,我得到一个页面上没有找到错误的页面(在提交表格等),当它没有被包括没有问题。 谢谢你的帮助 [HttpPost] public ActionResult Contact(ContactModels c) { ViewBag.Message = "Your contact page."; if (ModelState.IsValid)
[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();
}
编辑:错误消息
“/”应用程序中出现服务器错误
找不到资源
描述:HTTP404。您正在查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请检查以下URL并确保其拼写正确
请求的URL:/主页/联系人
版本信息:Microsoft.NET Framework版本:4.0.30319;ASP.NET版本:4.6.114.0你能试试这个吗
client.enablesl=true;
client.port=465 如果我理解正确,您在提交表单之前收到的页面未找到错误,这意味着在加载表单时?如果是这种情况,我认为问题在于,当您将操作标记为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请求,然后您现有的操作将处理表单的发布。“如果有人能为我指出一个好的虚拟Smtp服务器的方向,以便正确测试此功能,我将不胜感激”创建一个gmail帐户进行测试,免费。尝试过,问题相同。无论如何,谢谢你完成了!!!!不需要“get”请求,但一个单独的控制器完成了这一任务:-)