2013-08-06 3 views
1

Я начинаю с MVC, вам нужно реализовать функцию отправки почты в приложении MVC.Отправить сообщение с помощью MVC Razor View

Ниже приведен мой код.

Вид:

@using (@Html.BeginForm()) 
{ 

@Html.TextBoxFor(m => m.EmailID) 

<input type="submit" name="name" value="SendMail" /> 
@{ Html.RenderAction("SendMail", "PagesController"); 

} 

код контроллера: PagesController

[HttpPost] 
    public ActionResult SendMail(EmailModel model) 
    { 
     MailMessage msg = new MailMessage(); 

     msg.From = new MailAddress("[email protected]"); 
     msg.To.Add(model.EmailID); 
     msg.Subject = "Welcome To REBAR Mobile Showcase"; 
     msg.Body = "Hi," + Environment.NewLine + @"Welcome to REBAR Mobile Showcase. Please click on the below link : https://ciouishowcase.accenture.com/mobile/m" 
      + Environment.NewLine + "Regards," + Environment.NewLine + "CIO Design Agency"; 
     msg.Priority = MailPriority.Normal; 

     SmtpClient client = new SmtpClient(); 

     client.Credentials = new NetworkCredential("abc", "passwrod", "Dir"); 
     client.Host = "email.abc.com"; 
     client.Port = 587; 
     client.DeliveryMethod = SmtpDeliveryMethod.Network; 
     client.EnableSsl = true; 
     client.UseDefaultCredentials = true; 
     client.Send(msg); 
     return View(); 
    } 

Модель: EmailModel

public class EmailModel 
{ 
    public string EmailID { get; set; } 
} 

У меня есть несколько вопросов здесь:

  1. Как я могу вызвать этот метод при нажатии кнопки отправки ссылки.

  2. Я хочу применить стиль также в текстовом поле & sendmail. Как мне сделать это с помощью этих типов элементов управления?

@ Html.TextBoxFor (м => m.EmailID)

  1. Могу ли я следующие MVC стандарты? Если нет, то где.
+2

Добро пожаловать ТАК! Как правило, если у вас есть несвязанные проблемы, в вашем случае, одно о действии MVC и другое о стилизации, вы должны разбить свой вопрос на несколько.Это облегчает ответ сообщества. –

ответ

2

Вам не нужно это:

@{ Html.RenderAction("SendMail", "PagesController"); 

} 

просто изменить BeginForm метод для этого:

@Html.BeginForm("SendMail", "Pages", FormMethod.Post) 

и заставит кнопку submit к POST методу вы описанных в вашем контроллере. Это совпадает имя контроллера Pages к PagesController, то он совпадает имя действия в сочетании с типа метода и находит это:

[HttpPost] 
public ActionResult SendMail ... 

И насколько применение стилей, что делается с помощью базового HTML и CSS. Вы могли бы использовать что-то вроде:

form input[type="text"] { 

} 

стилизовать text вход для примера.

+1

Спасибо, это сработало. :) –

3
  1. На ваш взгляд, вам не нужно RenderAction-вызов, но вам необходимо передать правильные действия в вашей Бегин-формы

  2. Применение стилей: Вы можете перейти в динамический объект с атрибуты, которые вы хотите использовать для элемента. В этом случае я добавил класс-attrbute (которые вы затем должны стиля с помощью CSS)

    @using (@Html.BeginForm("SendMail", "Pages")) 
    {  
        @Html.TextBoxFor(m => m.EmailID, new() {@class="somecssclass"}) 
    
        <input type="submit" name="name" value="SendMail" /> 
    } 
    
Смежные вопросы