1

mvc サイトにフィードバック フォームがあります。

ここに画像の説明を入力

フォームのモデルを作成しました

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("mironny@inbox.ru", Text);
        FeedbackForm temp = new FeedbackForm();
        return View(temp);
    }


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

        msg.From = new MailAddress("Test@mail.ru");
        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;
    }

どうしたの?

4

1 に答える 1

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-helpers のオーバーロード メソッドを学ぶことです。そして、MVC モデル バインディング戦略...

于 2013-05-20T11:18:36.310 に答える