【问题标题】:ASP.NET Core MVC is possible to open a view in a new tab without using the controller?ASP.NET Core MVC 可以在不使用控制器的情况下在新选项卡中打开视图吗?
【发布时间】:2020-05-27 00:55:30
【问题描述】:
例如:我有一个控制器返回的视图,它接收一个对象,在这个视图中,我有一个按钮来打开一个新视图,该视图与调用它的视图具有相同的对象。
如果我在隐藏的 div 中使用 Html.RenderPartial,我可以在按钮单击时使用调用者视图模型打开新视图,而无需使用控制器。
我想要的是改为在隐藏容器中显示新视图,如果有可能单击按钮以在新选项卡上显示视图??
最好的问候
【问题讨论】:
标签:
javascript
c#
asp.net-mvc
asp.net-core
razor
【解决方案1】:
我的想法还是把这个PartialView放在一个隐藏的div里面,然后用window.open方法打开一个新的tab,把这个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>
结果: