gpt4 book ai didi

c# - MVC 中的数据模板 :- how to define constant in javascript from the c# code

转载 作者:行者123 更新时间:2023-11-30 13:34:50 24 4
gpt4 key购买 nike

他们是否存在任何功能,例如数据模板。我有一个用于我的项目的 js 文件,它使用我在母版页中链接它们来链接所有页面。

我想定义他们的一些常量,这些常量在名为 Globals 的 c# 类中定义。我如何在项目中使用的 js 文件中配置或访问它们。

我需要一个东西,当代码在客户端系统上加载时,js 文件中的一些变量从类 c# 中设置。

假设我在 Razor 中编写的代码中定义了它们

变量名称@glboals.appName;

但如果我在文件中定义它们,它们将永远不会像在 View 中呈现时那样呈现它们。

当文件是独立的且未嵌入 View 时,他们在 js 文件中应用常量的任何方式也是如此。

所以这个问题的任何解决方案

最佳答案

像这样?

<html>    
<!-- blah blah bla -->
<script>
var myFirstGlobalVar = '@Namespace.Class.Variable';
</script>
</html>
...

顺便说一句,如果您说 MasterPage 然后用 @ 显示代码,我们只是不知道您在说什么,最好提一下版本作为标签。

MasterPages 用于 WebForms 和 MVC 1 和 2,LayoutViews 用于 MVC 3


如果你想把它放在一个静态文件中......好吧,它是一个静态文件,它不会被处理,所以你将看到的只是你编写的确切代码。

要处理这些事情,您需要动态处理此文件,因此,让我们添加一个名为 DynamicScripts 的 Controller 和一个名为 JsVariables 的 Action,并添加一个普通的 return查看();

将该 View 用作您设置变量的普通 Javascript 文件,并且您可以传递任何模型

现在,在您的 global.asax 中创建一个新规则:

routes.MapRoute(
"CustomJs", // Route name
"Js/Variables", // URL with parameters
new { controller = "DynamicScripts", action = "JsVariables", id = UrlParameter.Optional } // Parameter defaults
);

在你的 html 中添加一行:

<link href="@Url.Content("~/Js/Variables")" type="text/javascript" />

有更多方法可以做到这一点,比如使用 RegisterStartUpScript,但上面的技巧(尽管我将它用于 CSS 而不是 JavaScript)是我使用的大多数。

关于c# - MVC 中的数据模板 :- how to define constant in javascript from the c# code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5296376/

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