首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从c#代码中定义javascript中的常量

问如何从c#代码中定义javascript中的常量
EN

Stack Overflow用户
提问于 2011-03-14 16:39:28
回答 2查看 720关注 0票数 1

它们的任何功能是否存在类似于数据模板。我有一个js文件为我的项目谁链接在所有网页使用我链接他们在母版页。

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

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

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

变量名称@glboals.appName;

但是如果我在文件中定义它们,它们永远不会像在视图中一样呈现它们。

所以当文件是独立文件而不是嵌入在视图中时,它们在js文件中应用常量的任何方式都是如此。

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-14 16:46:12

是像这样吗?

代码语言:javascript
复制
<html>    
    <!-- blah blah bla -->    
    <script>    
        var myFirstGlobalVar = '@Namespace.Class.Variable';    
    </script>    
</html>
...

BTW,如果你说MasterPage,然后用@显示代码,我们不知道你在说什么,把版本作为标签提到是件好事。

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

如果你想把它放在一个静态文件中...这是一个静态文件,它不会被处理,所以你所看到的就是你所写的代码。

为了处理这些事情,您需要动态地处理这个文件,因此,让我们添加一个名为DynamicScripts的控制器和一个名为JsVariables的操作,并添加一个普通的return View();

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

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

代码语言:javascript
复制
routes.MapRoute(
    "CustomJs", // Route name
    "Js/Variables", // URL with parameters
    new { controller = "DynamicScripts", action = "JsVariables", id = UrlParameter.Optional } // Parameter defaults
);

并在您的html jus中添加一行:

代码语言:javascript
复制
<link href="@Url.Content("~/Js/Variables")" type="text/javascript" />

有更多的方法可以做到这一点,比如使用RegisterStartUpScript,但上面的技巧(虽然我将其用于CSS而不是JavaScript)是我使用最多的。

票数 3
EN

Stack Overflow用户

发布于 2011-03-14 16:46:57

您可以在视图master中定义如下脚本,并在每个视图中使用config:

代码语言:javascript
复制
<script type="text/javascript">
    var Config = {};
    Config.appName = '<%= glboals.appName %>';     
</script>

这是mvc2的例子,你可以在razor中做同样的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5296376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档