单击按钮时将部分视图加载为模态
Load partial view as modal on button click
所以我尝试在单击按钮后加载来自控制器的部分视图,其中包含 bootstrap 模态。
不知道是哪里出了问题,第一次点击按钮时,添加了DOM,但是不显示模态。第二次单击时,模态显示 <1s,然后我只得到灰色模态背景。
我的按钮
"<button class='btn btn-info edit-category' onclick='showModal()' data-category-id='" + full.id + "'>Edit</button>"
我的showModal
-函数:
function showModal(){
$("#div1").load("/Category/EditCategory");
$("#createCategory").modal();
}
我的部分视图操作:
public ActionResult EditCategory()
{
return PartialView("Admin/_CategoryAdd", new CategoryDetailModel{Title = "Test"});
}
我的部分视图“_CategoryAdd”:
@model CategoryDetailModel
<div class="modal" id="createCategory" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<form asp-action="Create" asp-controller="Category"
data-ajax="true"
data-ajax-method="POST"
data-ajax-mode="replace"
data-ajax-failure="failed"
data-ajax-success="success">
有趣的是,当我不单击按钮并在浏览器控制台中输入两行时,它会按预期工作。
当我在控制台执行该方法时,它与单击按钮相同。
我也想,也许是时间的问题,所以我添加了 setTimeout
5000 毫秒,但没有用。
有什么想法吗?
在@freedomn-m 的帮助下,我发现我可以在加载完成后添加一个函数:
$("#div1").load("/Category/EditCategory",
function(){$("#createCategory").modal('toggle');});
现在可以使用了
所以我尝试在单击按钮后加载来自控制器的部分视图,其中包含 bootstrap 模态。
不知道是哪里出了问题,第一次点击按钮时,添加了DOM,但是不显示模态。第二次单击时,模态显示 <1s,然后我只得到灰色模态背景。
我的按钮
"<button class='btn btn-info edit-category' onclick='showModal()' data-category-id='" + full.id + "'>Edit</button>"
我的showModal
-函数:
function showModal(){
$("#div1").load("/Category/EditCategory");
$("#createCategory").modal();
}
我的部分视图操作:
public ActionResult EditCategory()
{
return PartialView("Admin/_CategoryAdd", new CategoryDetailModel{Title = "Test"});
}
我的部分视图“_CategoryAdd”:
@model CategoryDetailModel
<div class="modal" id="createCategory" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<form asp-action="Create" asp-controller="Category"
data-ajax="true"
data-ajax-method="POST"
data-ajax-mode="replace"
data-ajax-failure="failed"
data-ajax-success="success">
有趣的是,当我不单击按钮并在浏览器控制台中输入两行时,它会按预期工作。 当我在控制台执行该方法时,它与单击按钮相同。
我也想,也许是时间的问题,所以我添加了 setTimeout
5000 毫秒,但没有用。
有什么想法吗?
在@freedomn-m 的帮助下,我发现我可以在加载完成后添加一个函数:
$("#div1").load("/Category/EditCategory",
function(){$("#createCategory").modal('toggle');});
现在可以使用了