ASP. NET Core MVC Можно ли открыть представление в новой вкладке без использования контроллера? - PullRequest
0 голосов
/ 27 мая 2020

Например: у меня есть представление, возвращаемое контроллером, который получает объект, в этом представлении у меня есть кнопка для открытия нового представления с тем же объектом, что и представление, которое его вызывает.

Если я использую Html .RenderPartial внутри скрытого div, я могу одним нажатием кнопки открыть новое представление с моделью представления вызывающего абонента без использования контроллера.

Я хочу чтобы вместо этого отображать новое представление внутри скрытого контейнера, если возможно, чтобы при нажатии кнопки отображалось представление на новой вкладке ??

С уважением

1 Ответ

1 голос
/ 27 мая 2020

Моя идея по-прежнему состоит в том, чтобы поместить этот PartialView в скрытый div, а затем использовать метод window.open, чтобы открыть новую вкладку и поместить в нее этот div. Ниже приведен простой тест:

Основной вид

@model User

<div id="partialview" style="display: none">
    @{await Html.RenderPartialAsync("MyPartialView", Model);}
</div>

<input type="button" id="btn" value="NewTab" />

@section scripts{ 

    <script>
    $("#btn").click(function () {
        var newTab = window.open("", "_blank", "", true);
        newTab.document.body.innerHTML = $("#partialview").html();
    })
    </script>

}

Частичный вид

@model User

<h3>User</h3>

<div>
    @Html.DisplayNameFor(m => m.Id)
    <input asp-for="@Model.Id" />
</div>
<div>
    @Html.DisplayNameFor(m => m.UserName)
    <input asp-for="@Model.UserName" />
</div>

Результат:

enter image description here

...