1

我是 MVC 的初学者,必须实现在 MVC 应用程序中发送邮件的功能。

下面是我的代码。

看法 :

@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("abc@abc.com");
        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. 我也想在文本框和发送邮件链接上应用样式。我应该如何使用这些类型的控件?

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

  1. 我是否遵循 MVC 标准?如果没有,在哪里。
4

2 回答 2

3
  1. 在您看来,您不需要 RenderAction-call,但您需要将正确的操作传递给您的 begin-form

  2. 应用样式:您可以传入一个动态对象,该对象具有您想要的元素属性。在这种情况下,我添加了一个类属性(然后您必须使用 CSS 设置样式)

    @using (@Html.BeginForm("SendMail", "Pages"))
    {    
        @Html.TextBoxFor(m => m.EmailID, new() {@class="somecssclass"})
    
        <input type="submit" name="name" value="SendMail" />
    }
    
于 2013-08-06T14:29:22.553 回答
2

你不需要这个:

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

}

只需将BeginForm方法更改为:

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

这将强制submit按钮使用POST您在控制器中描述的方法。它将控制器名称PagesPagesController匹配,然后将动作名称方法类型相匹配并找到:

[HttpPost]
public ActionResult SendMail ...

至于应用样式,这是通过基本的 HTML 和 CSS 完成的。你可以使用类似的东西:

form input[type="text"] {

}

text例如,为输入设置样式。

于 2013-08-06T14:28:47.277 回答