Aloha,我在ASP.NET MVC4应用程序中使用Bootstrap v3.3.6来显示使用模态视图的弹出窗口。
我的模态示例:
<div class="modal-contents modal-view content-wrapper">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body content-wrapper">
</div>
</div>
<script type="text/javascript">
$(function () {
$('#approve-btn').click(function () {
$('#modal-container').modal('hide');
});
});
</script>
要加载模态,我使用Html.ActionLink,如
@Html.ActionLink("SomeText", "SomeAction", "SomeController", null , new { @class="modal-link"})
在我的_Layout页面中触发我的脚本:
<script type="text/javascript">
$(function () {
// Initialize modal dialog
// attach modal-container bootstrap attributes to links with .modal-link class.
// when a link is clicked with these attributes, bootstrap will display the href content in a modal dialog.
$('body').on('click', '.modal-link', function (e) {
e.preventDefault();
$(this).attr('data-target', '#modal-container');
$(this).attr('data-toggle', 'modal');
console.log(this);
});
// Attach listener to .modal-close-btn's so that when the button is pressed the modal dialog disappears
$('body').on('click', '.modal-close-btn', function () {
$('#modal-container').modal('hide');
});
//clear modal cache, so that new content can be loaded
$('.modal').on('hidden.bs.modal', function () {
$(this).removeData('bs.modal');
});
$('#CancelModal').on('click', function () {
return false;
});
});
</script>
最后是_Layout中的占位符
<div id="modal-container" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-content modal-view">
</div>
</div>
这一切都是依靠这个设计的:http://www.codeproject.com/Tips/826002/Bootstrap-Modal-Dialog-Loading-Content-from-MVC-Pa并且工作得很好。在我已经在同一个视图中打开一个模态后,我试图打开一个模态。然后我会找到包含与以前相同的数据的模态。
在尝试所有建议之后:
Reload content in modal (twitter bootstrap)
我觉得问题是#modal-container的重新填充。
脚本以正确的方式完成链接,我可以通过调试chrome来说明。
如果我重新加载整个页面,模态视图接受新内容。
但由于我使用制表符(也依赖于Bootstrap)重新加载不是一个选项,因为我会松开当前的选项卡选项。
我对网络开发非常陌生,所以如果你有一些想法会很棒。
答案 0 :(得分:-1)
你可以使用
ModelState.Clear();
用于清除控制器中的模型状态。
希望它会对你有所帮助。