MVCのポストアクションからポストがどこから来たブートストラップポップアップモーダルの部分ビューにリダイレクトするのですか?MVCのポストアクションからポストがどこから来たブートストラップポップアップモーダルの部分ビューにリダイレクトするのですか?
ここには、ページのブートストラップモーダルポップアップにあるPartialViewがあります。 モデルのエラーを待っている検証タグ付きのdivがあります。
@model CreateRoleViewModel
<div class="panel panel-primary partialModalFormDivs">
@Html.Partial("_ModalHeader",
new ModalHeader
{
Heading = "ADD ROLE",
glyphiconClass = "glyphicon glyphicon-random"
}
)
<div class="panel-body">
<div asp-validation-summary="All" class="text-danger"></div>
<form asp-action="CreateRole" method="post">
<div class="form-group">
<label asp-for="RoleName"></label>
<input asp-for="RoleName" class="form form-control" />
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Create</button>
<a asp-action="Index" class="btn btn-default">Cancel</a>
</div>
</form>
</div>
</div>
それは、このアクションにポスト:
[HttpPost]
public async Task<IActionResult> CreateRole(CreateRoleViewModel createRoleViewModel)
{
if (ModelState.IsValid)
{
IdentityRole role = new IdentityRole(createRoleViewModel.RoleName);
IdentityResult result
= await _roleManager.CreateAsync(role);
if (result.Succeeded)
{
return RedirectToAction("Index");
}
else
{
foreach (IdentityError error in result.Errors)
{
ModelState.AddModelError("", error.Description);
}
}
}
return View(createRoleViewModel);
}
私は最後に、このようなPartialViewを返すことができます。
return View("_CreateRole", createRoleViewModel);
しかし、その後、ページ全体がクリアされ、この部分が返されますレイアウトファイルはありません。
結果をモーダルポップアップウィンドウに戻すにはどうすればよいですか。 問題と現在の動作を理解しています。しかし、誰かがこれを解決しましたか?
いいえ、それは動作しません。成功した場合は、完全なインデックスページに戻ります。エラーがある場合は、インデックスページのモーダルポップアップにモデルエラーを表示します。 – Sam
それは動作しますが、メインビューから参照される別の部分的なビューにフォーム自体を配置する必要があります。その後、postメソッドはそのフォームの部分だけを置き換える部分だけを返します。モーダル内のリダイレクトはiframeでのみ機能し、ajaxソリューションは動作し、iframeは必要ありません –