私は MVC を初めて使用し、送信フォームの作成に行き詰まっています。
モデル Email.cs:
using System.Web;
namespace MySite.Models
{
public class Email
{
public string From { get; set; }
public string Subject { get; set; }
public string body { get; set; }
}
}
コントローラー通信Controller.cs:
namespace MySite.Controllers
{
public class CommunicationController : Controller
{
public ActionResult SendEmail() {
Email email = new Email();
return View(email);
}
[HttpPost]
public ActionResult SendEmail(Email email)
{
if (ModelState.IsValid)
{
}
return View(email);
}
}
}
SendEmail.cshtml を表示します。
@model MySite.Models.Email
@{
ViewBag.Title = "SendEmail";
}
<h2>@Html.Label("Send email")</h2>
@using(Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<div class="editor-label">
@Html.Label("From")
</div>
<div class="editor-field">
@Html.EditorFor(model => model.From)
</div> <div class="editor-label">
@Html.Label("Subject")
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Subject)
</div> <div class="editor-label">
@Html.Label("Body")
</div>
<div class="editor-field">
@Html.EditorFor(model => model.body)
</div>
<input id="btnSubmit" type="submit" value="SendEmail" />
}
送信を押すと、イベントは発生しません。コントローラーで「ビューに移動」を押すと、SendEmail ビューに移動します。何が起こっているのかわかりません。デバッグしようとしましたが、[HttpPost] コントローラーが起動しません。
ブラウザから取得したものは次のとおりです。アクションが表示されません
<form method="post" action="/" novalidate="novalidate">
<input type="hidden" value="ZktM_I7fzdlcNme4YVEcNNpnFFmQu1cpAuTXarO_V4w-7bPmpHkaLRfNY3cXGMYy7wkRgSJWWSkS8lp5vdRimFrNCgqk0Jfdr4v7Zc3V2pg1" name="__RequestVerificationToken">
<div class="editor-label">
<div class="editor-field">
<input id="From" class="text-box single-line" type="text" value="" name="From">
</div>
<div class="editor-label">
<div class="editor-field">
<div class="editor-label">
<div class="editor-field">
<input id="btnSubmit" type="submit" value="SendEmail">
</form>