javascript - ASP.NET Core MVC 可以在不使用控制器的情况下在新选项卡中打开视图吗?
问题描述
例如:我有一个控制器返回的视图,它接收一个对象,在这个视图中,我有一个按钮来打开一个新视图,该视图与调用它的视图具有相同的对象。
如果我在隐藏的 div 中使用 Html.RenderPartial,我可以在按钮上单击使用调用者视图模型打开的新视图,而无需使用控制器。
我想要的是改为在隐藏容器中显示新视图,如果有可能单击按钮以在新选项卡上显示视图?
此致
解决方案
我的想法还是把这个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>
结果:
推荐阅读
- android - 在 GattServer 上调用 notifyCharacteristicChanged() 时出现异常
- sql - 如何强制 SELECT 查询中的空字段为某种数据类型?
- kubernetes - 具有 302 重定向循环的 Kubernetes Ingress
- r - 如何在 Plumber API 中设置位置标头
- apache - 如何将本地IP指定为apache的httpd源IP
- node.js - 在所有其他导入之前运行 monkeypatch 设置代码
- c++ - QT Creator 访问指向对象的指针
- r - 如何从同一列中的值创建新变量?
- selenium - 如何选择选择器 id 在 selenium 中的行为是动态的字段
- python - 将 N 个字典合二为一