私のレジスターはフォームを返すときに完全に機能しますが、私が作成したレジスターは何も返しません。VisualStudioが提供する登録ページとは異なる方法で何をしているのかわかりません。正しいhttppostメソッドを呼び出しますが、渡される値はnullです。助けてくれてありがとう。そのモデルをコントローラーのアクション結果にポストバックしたいだけです。
コントローラ
[HttpGet]
public ActionResult Support()
{
ViewBag.Message = "Your app description page.";
return View();
}
[AllowAnonymous]
[HttpPost, ValidateSpamPrevention]
public ActionResult Support(QuickEmailModel email)
{
if (ModelState.IsValid)
{
return View("thankyou", email);
}
return View(email);
}
モデル
public class QuickEmailModel
{
[DataType(DataType.EmailAddress)]
[EmailAddress]
public string Email { get; set; }
[Required]
public string Subject { get; set; }
[Required]
[DataType(DataType.MultilineText)]
public string Description { get; set; }
[Display(Name = "Company (Optional):")]
public string Company { get; set; }
}
}
ビューのトップ
@using PoliteCaptcha
@model Models.QuickEmailModel
@{
ViewBag.Title = "Support";
}
フォームがある下部
@using (Html.BeginForm())
{
@Html.ValidationSummary()
<div class="control-group">
<label class="control-label">
@Html.LabelFor(x => x.Company, "Company (Optional):", new { @class = "control-label" })</label>
<div class="controls">
@Html.TextBoxFor(x => x.Company, new { @class = "span4" })
</div>
</div>
<div class="control-group">
@Html.LabelFor(x => x.Email, "Email:", new { @class = "control-label" })
<div class="controls">
@Html.TextBoxFor(x => x.Email, new { @Class = "span4" })
</div>
</div>
<div class="control-group">
<label class="control-label">
@Html.LabelFor(x => x.Subject, "Subject:", new { @class = "control-label" })</label>
<div class="controls">
@Html.TextBoxFor(x => x.Subject, new { @class = "span4" })
</div>
</div>
<div class="control-group">
<label class="control-label">
@Html.LabelFor(x => x.Subject, "Description:", new { @class = "control-label" })</label>
<div class="controls">
@Html.TextAreaFor(x => x.Description, new { @class = "span4", @rows = "6", id = "txtDescription" })
</div>
</div>
@Html.SpamPreventionFields()
<input type="submit" class="btn btn-success" id="btnSubmit" value="Submit" style="margin-right: 15em;
float: right;" />
}