私はお問い合わせフォームを作成して、モデルは単純で構成されてい...名前、電子メール、電話番号などMVC - Ajax.BeginForm - 投稿複数回
私はいくつかの上のいくつかの簡単な、必要な属性を持つモデルにプロパティ。
妥当性検査エラーが発生しなかった場合、これはすべてうまくいっています。フォームが送信されたことを伝える電子メールが表示され、「ありがとうございます」というメッセージがユーザーに表示されます。
私の問題は、検証に失敗した場合です。テキストボックスなどに通常の赤い枠線が表示されるようになりました。ユーザーがテキストボックスを更新して検証要件に合致し、再度送信すると、2つのメールが届きます。両方が正確に同じ詳細です。しかし、あなたが何回通話(メール)を受信したかの検証に失敗することが何度もあるようです。
私はMVCにかなり慣れています。あなたが正しい方向に向けることができれば、それは素晴らしいことです。
乾杯、
J
フォーム:
using (Ajax.BeginForm("ProcessContact", "Contact", null, new AjaxOptions { UpdateTargetId = "subContentWrapper", }))
{
@Html.ValidationSummary()
<p>
<strong>Please tell us a little about you and the nature of your enquiry </strong>
</p>
<table>
<tr>
<td style="width: 200px;">
Name:
</td>
<td>@Html.TextBoxFor(x => x.Name, new { @class = "textBox" })
</td>
</tr>
<tr>
<td>
Company Name:
</td>
<td>@Html.TextBoxFor(x => x.CompanyName, new { @class = "textBox" })
</td>
</tr>
<tr>
<td>
E-mail:
</td>
<td>@Html.TextBoxFor(x => x.Email, new { @class = "textBox" })
</td>
</tr>
<tr>
<td>
Phone:
</td>
<td>@Html.TextBoxFor(x => x.Phone, new { @class = "textBox" })
</td>
</tr>
</table>
<br />
<br />
<p style="text-align: center">
<input type="submit" value="Contact Us" /></p>
}
}
コード:
if (ModelState.IsValid)
{
if (ContactService.ProcessContactSubmission(model))
{
ViewBag.Sent = true;
}
else
{
ViewBag.Sent = false;
ModelState.AddModelError("", "Sorry an error has occured, please try again later.");
}
return PartialView("~/Views/Modules/Contact Us/Main.cshtml", model);
}
else
{
ViewBag.Sent = false;
return PartialView("~/Views/Modules/Contact Us/Main.cshtml", model);
}
ContactService.ProcessContactSubmission(モデル) - これだけの偽/電子メールを送信し、trueを返します
は、あなたのコードのplzを投稿することができますホープ? –
投稿を更新してコードスニペットを追加しました。ありがとう – Diginari
"subContentWrapper"とは何ですか?それはAJAX形式を取り巻くDIVですか? – Moshe