我使用一个函数来加载放置在页面顶部的模态:
function loadModal(url) {
$('#modal-container').load(url, function (result) {
console.log(result);
$('#modal').modal({ show: true });
});
return false;
}
然后,在页面正文中,将这个空div放在此处:
<div id="modal-container"></div>
这是我要加载的页面。它位于一个单独的文件中,并在给出URL时加载:
@model ManagementStudio.Data.ViewModels.ApplicationRoleDetailsViewModel
<script>
$(document).ready(function () {
});
$(document).on("submit","#modal",function (e) {
e.preventDefault();
var form_data = $(this).serialize();
$.ajax({
url: "@Url.Action("SaveRole", @ViewContext.RouteData.Values["controller"].ToString())",
method: "POST",
data: form_data,
contentType: "application/x-www-form-urlencoded; charset=UTF-8",
success: function (result) {
if (result.success) {
$(document).off("submit");
$(document).off("submit", "#save");
$('#modal').off('#save');
$.modal.close();
return;
}
$.each(result.errors, function (index, item) {
// Get message placeholder
var element = $('[data-valmsg-for="' + item.propertyName + '"]');
element.empty();
// Update message
element.append($('<span></span>').text(item.errorMessage));
// Update class names
element.removeClass('field-validation-valid').addClass('field-validation-error');
$('#' + item.propertyName).removeClass('valid').addClass('input-validation-error');
});
}
});
return false;
});
</script>
<div class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="col-sm-12">
@if (Model.Id == null)
{
<h2>Add Role</h2>
}
else
{
<h2>Edit Role</h2>
}
<hr />
</div>
</div>
</div>
</div>
这是我用来发送网址以加载模式的href:
<a href="#" onclick="return loadModal("/Applications/Applications/RoleDetails?Id=800fd767-98bb-42f1-9183-377646b826bb&ApplicationId=300e235f-2e4e-4c64-9ae7-d1ac09846afa")">SystemAdministrator</a>
但是,当我单击该URL时,会出现闪烁,然后我的模式不显示。没有黑色背景或其他任何东西。
当我查看Chrome调试器时,内容已全部加载,但模式div中的显示设置为无。
我不确定我错过了什么。
编辑:
这是我的标题:
<script src="~/jquery/jquery.min.js"></script>
<script src="~/jquery-validate/jquery.validate.js"></script>
<script src="~/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js"></script>
<script src="~/jqueryui/jquery-ui.js"></script>
<script src="~/popper.js/umd/popper.js"></script>
<script src="~/twitter-bootstrap/js/bootstrap.js"></script>
编辑:
我删除了loadModal函数并将其更改为:
$('body').on('click', '[data-toggle="modal"]', function () {
$($(this).data("target") + '#modal-container').load($(this).data("remote"));
});
我的链接也是如此:
<a href="#" data-remote="/Applications/Applications/RoleDetails?Id=800fd767-98bb-42f1-9183-377646b826bb&ApplicationId=300e235f-2e4e-4c64-9ae7-d1ac09846afa" data-toggle="modal" data-target="#modal-container">SystemAdministrator</a>
但是,现在的问题是背景对我而言而不是我的模态出现。