2013-05-20 5 views
1

У меня есть форма обратной связи на моем сайте MVC, это выглядит какasp.net MVC Отправить форму с сайта по электронной почте

enter image description here

Я создал модель для моей формы

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 

namespace ComponentTrading.Web.Models 
{ 
public class FeedbackForm 
    { 
    public string Name { get; set; } 
    public string Email { get; set; } 
    public string Phone { get; set; } 
    public string Message { get; set; } 
    } 
} 

Я создал вид для моей формы

@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "contact-form" })) 
        { 
        <fieldset> 
        @Html.TextBoxFor(model => model.Name, new { @Value = "Name" }) 
        @Html.TextBoxFor(model => model.Email, new { @Value = "E-mail" }) 
        @Html.TextBoxFor(model => model.Phone, new { @Value = "Phone" }) 
        @Html.TextAreaFor(model => model.Message, new { @class = "img-shadow"}) 
        <input class="form-button" data-type="reset" value="Clear" /> 
        <input class="form-button" data-type="submit" type="submit" value="Send" /> 


}

и теперь я пытаюсь сделать, отправив письмо по электронной почте, но это Безразлично работу, когда я нажимаю «отправить кнопку» он ничего не происходит, и я не получаю по электронной почте

мой контроллер

[HttpGet] 
    public ActionResult Contacts() 
    { 
     FeedbackForm temp = new FeedbackForm(); 
     temp.Message = "Message"; 
     return View(temp); 
    } 


    [HttpPost] 
    public ActionResult Contacts(FeedbackForm Model) 
    { 
     string Text = "<html> <head> </head>" + 
     " <body style= \" font-size:12px; font-family: Arial\">"+ 
     Model.Message+ 
     "</body></html>"; 

     SendEmail("[email protected]", Text); 
     FeedbackForm temp = new FeedbackForm(); 
     return View(temp); 
    } 


    public static bool SendEmail(string SentTo, string Text) 
    { 
     MailMessage msg = new MailMessage(); 

     msg.From = new MailAddress("[email protected]"); 
     msg.To.Add(SentTo); 
     msg.Subject = "Password"; 
     msg.Body = Text; 
     msg.Priority = MailPriority.High; 
     msg.IsBodyHtml = true; 

     SmtpClient client = new SmtpClient("smtp.mail.ru", 25); 



     client.UseDefaultCredentials = false; 
     client.EnableSsl = false; 
     client.Credentials = new NetworkCredential("TestLogin", "TestPassword"); 
     client.DeliveryMethod = SmtpDeliveryMethod.Network; 
     //client.EnableSsl = true; 

     try 
     { 
      client.Send(msg); 
     } 
     catch (Exception) 
     { 
      return false; 
     } 
     return true; 
    } 

Что случилось?

ответ

1

Использование

// if you dont pass any parameter 
// BeginForm posted to the action that 
// has name as view name. 
// so no need to write any parameters 
@using (Html.BeginForm()) 
{ 
    ... 

    <input type="submit" value="Send"> 
} 

ИЛИ

@using (Html.BeginForm("Contacts", "SomeController", FormMethod.Post, new { id = "contact-form" })) 
{ 
    ... 

    <input type="submit" value="Send"> 
} 

У вас есть несколько вопросов о MVC, и есть более важная вещь, из них неправильные методы перегрузки. Мое предложение, во-первых, вы должны изучить методы перегрузки html-helers. И стратегии привязки модели MVC ...

+0

Я пробовал второй код, но он не работает снова, когда я нажимаю «send-button», ничего не происходит, и я не получаю электронную почту, а поля не становятся ясными, хотя я написал '[HttpPost ] общественного ActionResult Контакты (FeedbackForm модель) { строка Text = "" + "<тело стиль = \" размер шрифта: 12px; font-family: Arial \ ">" + Model.Message + ""; SendEmail ("[email protected]", текст); FeedbackForm temp = new FeedbackForm(); возвращение Вид (темп); } ' – Heidel

+0

Где кнопка отправки? Не могли бы вы добавить его к своему вопросу? –

+0

Да, конечно, у меня есть кнопка отправки, я просто забыл ее скопировать, добавил я и отправлю пуговицы в свой вопрос. – Heidel

Смежные вопросы