Contact_Usビューにこのようなフォームがあります
@model vidiaweb_com.Models.Contact_US
....
<div id="contactus">
<div class="container">
<form class="form-group col-md-8">
<div id="contactuspost">
<h3 class="txtformat">Contact Us</h3>
<p class="txtformat">
We are here to answer any questions you may have. Reach out to us and we will respond as soon as we can.
</p>
<p class="txtformat">
Even if there is something you have always wanted to experience and can't find it on combadi, let us know and we promise we'll do our best to find it for you and send you there.
</p>
<br />
<div class="form">
@using (Html.BeginForm("Create", "Contact_Us"))
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<div class="form-group">
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2 txtformat" })
<div class="col-md-12">
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
</div>
</div>
....
</div>
}
</div>
</div>
</form>
</div>
</div>
....
@Html.Partial("_MainFooter")
これは私のContact_UsControllerです
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Id,Name,Email,Phone,Message,Date")] Contact_US contact_US)
{
if (ModelState.IsValid)
{
db.Contact_US.Add(contact_US);
db.SaveChanges();
return RedirectToAction("Index","Home");
}
return RedirectToAction("Index", "Home");
}
ただし、フォームに入力して送信ボタンをクリックするCreate
と、Contact_Us
コントローラーでアクションが呼び出されません。このようなものが私のURLにあります
http://localhost:50074/Contact_Us/Index?__RequestVerificationToken=nrlDXOQglmGEzSQMqOqxm8ol4GiKeLffHoQUnLmuwhlIGcSFQfBrQxhZA8EL39nPLmG1FJQK42X284v60l6oepOytsmHLgwDOJYOgfmYnFU1&Name=dg&Email=d%40d.com&Phone=SF&Date=&Message=SFD
そして、Contact_Usインデックスビューに再度リダイレクトします。
私のプロジェクトにはこのような別のフォームがありましたが、それは正しく機能します。誰かが問題が何であるかについて何か考えを持っていますか?ありがとう
無効なhtmlでサポートされていないネストされたフォーム(が<form class="form-group col-md-8">
含まれています@Html.BeginForm()
)があります。
表示されるURLは、ブラウザが最も外側のフォームを送信するためです。フォームのデフォルトのメソッドはGETであり、デフォルトのアクションはそれを生成したメソッド(あなたの場合Index()
)に送信することであるため、フォームコントロールごとにクエリ文字列値を生成します。
<form class="form-group col-md-8">
タグとその終了</form>
タグを削除すると、によって生成されたフォームHtml.BeginForm()
がCreate()
POSTメソッドに送信されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加