Лучший способ справиться с этим - использовать модалы Bootstrap и JavaScript внутри вашего представления.
Поскольку вы используете частичное представление, я предполагаю, что у вас есть другое родительское представление, такое как индексное представление.Вы можете прикрепить html для своих модалов, используя javascript в родительском представлении, а затем открыть частичное представление из родительского представления.Вот пример того же.
Index.cshtml
<div class="container">
<a href="@Url.Action("NotFound", "Name")" id="NotFound" class="btn btn-primary">
</div>
<div class="modal fade" id="NotFound-Model" tabindex="-1" role="dialog" aria- labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria- label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title">Add Holiday</h4>
</div>
<div class="divForNotFound">
</div>
</div>
</div>
</div>
JAVASCRIPT для обработки Bootstrap Modal
$(document).ready(function () {
$('#NotFound').click(function (event) {
event.preventDefault();
$.get(this.href, function (response) {
$('.divForNotFound').html(response);
});
$('#Add-NotFound').modal({
backdrop: 'static',
}, 'show');
});
}
Предполагается, что у вас естьчастичное представление NotFound.cshtml
@model Name.NotFoundModel
using (Ajax.BeginForm("NotFound", "Name", new AjaxOptions { HttpMethod = "POST", UpdateTargetId = "div-record", OnSuccess = "$('.close').click()" }))
{
<div class="modal-body">
<table class="table-bordered table-responsive table table-striped">
<tr class="col-lg-12">
<th class="label-primary">
@Html.Label("NotFoundLabel")
</th>
</tr>
</table>
</div>
}
Надеюсь, это поможет!