Было бы сложно запустить модальный режим, так как Url.Action
перенаправит вас на новую страницу. Лучший способ сделать это - использовать AJAX.
Сначала создайте контейнер, в который будут загружены ваши частичные представления или элементы HTML. В этом случае я создал здесь div, а именно divContainer
, где я помещу содержимое HTML, как только кто-то нажмет кнопку, а именно btnTrigger
.
<ul class="nav-primary">
<li>
<a class="nav-link" id="btnTrigger" href="#"><span>Rolles</span></a>
</li>
</ul>
<div id="divContainer"></div>
Затем на той же странице, где вы размещаете этот код, добавьте скрипт, который будет содержать ваши функциональные возможности AJAX. Это значит, что когда кто-то нажимает на вашу ссылку, в данном случае btnTrigger
(с кодом выше), он вызывает Betingelser
ActionResult и загружает ваш Rolles.cshtml
, который содержит ваш модальный HTML-код.
@section scripts
{
<script>
$(function () {
$('#btnTrigger').unbind();
$('#btnTrigger').on('click', function () {
$.ajax({
url: '@Url.Action("Betingelser", "Rolles")',
type: 'POST',
data: { },
success: function (arr) {
$('#divContainer').html(arr); //Load your HTML to DivContainer
$('#exampleModal').modal('show'); //Once loaded, show the modal
},
error: function (err) {
console.log(err);
}
});
});
});
</script>
}
Затем на вашем Rolles.cshtml я отредактировал ваш модал на основе документации Bootstrap, вы можете отредактировать его, если хотите:
@{
ViewBag.Title = "Rolles";
}
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
...
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-
dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
Ваш код контроллера остается прежним:
public ActionResult Betingelser()
{
return PartialView("Rolles");
}