Можно ли вызвать модальное всплывающее окно (JavaScript) в возврате контроллера MVC - PullRequest
0 голосов
/ 25 сентября 2018

Мне интересно, можно ли вызвать метод JavaScript (который отображает модал в виде всплывающего окна) в методе возврата контроллера.

string name = home.entityDetails.Name;
if (name == " " || name == null)
{
    return PartialView("NotFound");
}

Где вызывается return PartialView("Not found");, это так?можно вернуть метод JavaScript, который показывает модальный?

1 Ответ

0 голосов
/ 25 сентября 2018

Лучший способ справиться с этим - использовать модалы 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">&times;</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>
}

Надеюсь, это поможет!

...