gpt4 book ai didi

javascript - 使用 ASP.NET MVC 管理窗口的通用解决方案

转载 作者:行者123 更新时间:2023-11-29 10:08:02 25 4
gpt4 key购买 nike

我的项目中有三种不同的情况用于打开新窗口。当我单击窗口中的链接时,我希望执行以下解决方案之一:

我将使用以下类型打开窗口:

_空白
_自己
_ parent

我有以下列用于打开新窗口:

Code          Width   Height   Behaviour
AccountPage 400 600 Self
ProspectPage 700 700 Blank
PasswordPage 200 200 Single

我需要将特定参数传递给 javascript,例如宽度、高度和代码。代码用于打开哪个屏幕并获取其参数。我有 invoicepage、prospectpage、searchpage 等。如果打开 invoicepage,其宽度将为 200,或者如果打开 prospectpage,则宽度将为 400px。

在通用技术中管理和传递给 javascript 窗口打开类型和参数的正确方法是什么?我如何准备我的类(class)和类型?

我尝试在 LayoutGeneral.cshtml 中使用元标记将数据集传递给 javascript,但我无法获取它。

<meta name="IrisTabHeaderName" content="@Model.WindowInfo" />

我应该将我的数据保存在我的 BaseViewModel 中并将参数从那里传递给 javascript,还是应该将我的所有案例保存在 javascript 中并从带有类的 cshtml 页面调用?

最佳答案

将数据集传递给 javascript 的方式是错误的。您可以使用枚举或 json 对象保存您的页面参数,然后按如下方式反序列化它:

  var data =
'[{
"Code": {
"AccountPage": { "width": "400", "height": "600", "name": "_self" },
"ProspectPage": { "width": "700", "height": 700, "name": "_blank" },
"PasswordPage": { "width": "200", "height": "200", "name": "PasswordPage" }
}
}]';

在脚本源中添加这个 data.json 文件:

<script type="text/javascript" src="data.json"></script>

并在 javascript 中从 json 文件中获取对象:

var pageRules = JSON.parse(data);

最后您可以通过附加到“a”标签的点击事件来检查它:

$(function () {
$("a").click(MyLinkClickFunc);
});

function MyLinkClickFunc()
{
var $this = $(this);
var attrName = $this.attr("name");
var params = null;

if (typeof attrName !== typeof undefined && attrName !== false) {
params = pageRules.Code[attrName];
if(params == null)
{
var authCode = attrName.substr(0, attrName.indexOf('_'));
params = pageRules.Code[authCode];
}
}

if (params != null)
{
MyPopupOpener($this.attr("href"), params.name, params.width, params.height);
}
}

关于javascript - 使用 ASP.NET MVC 管理窗口的通用解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39373183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com