MVCのRedirectToActionが機能しない
MVCのモデルだけだとたりない情報があったので、javascriptからformdataを送信したのですが、コントローラーには届くのにRedirectToActionが機能しません。
発生している問題
RedirectToActionでIndexに戻らない。
バリデートがエラーの時にModelStateのメッセージが表示されない
該当のソースコード
MVC
1[HttpPost] 2[ValidateAntiForgeryToken] 3public ActionResult Edit([Bind(Include = "Id,,,,...他プロパティいろいろ")]Model model) 4{ 5 var req = Request.Form; 6 //--Request.Formへの処理--- 7 // 略 8 //------------------------ 9 if(ModelState.IsValid) { 10 return RedirectToAction("Index"); 11 } else { 12 return View(model); 13 } 14} 15
cshtml
1@using (Html.BeginForm("Edit", "model", FormMethod.Post ,htmlAttributes: new { @id = "editform" })){ 2 //modelの入力フォーム 3 <div class="col-xs-5"> 4 <select id="multiselect"> 5 //プルダウンメニュー 6 </select> 7 <button type="button" id="presubmit">更新</button> 8}
typescript
1 const form = <HTMLFormElement>document.getElementById("editform"); 2 //サブミット前選択されたメニューを追加する 3 document.getElementById("presubmit").addEventListener("click", () => { 4 var formData = new FormData(form); 5 6 for (var i = 0; i < multiselect.options.length; i++) { 7 formData.append("multiselect[" + i.toString() + "]", multiselect.options[i].value); 8 } 9 10 const url = location.origin + "/model/Edit"; 11 12 const xhr = new XMLHttpRequest(); 13 xhr.open(HttpMethod.POST, url, true); 14 xhr.responseType = ''; 15 xhr.setRequestHeader("contentType", "application / json; charset = utf - 8"); 16 xhr.send(formData); 17 Indicator.Hide(); 18 });
試したこと
XMLHttpRequestではなくform.submit()でも試してみたのですが、form.submit()だと追加した情報が反映されませんでした。
補足情報
IEも対象なのでES6は使用できない状況です。
ライブラリ等はASP.NET MVCで初期設定で存在しているbootstrapのみ使用しています。
回答1件
あなたの回答
tips
プレビュー