它们的任何功能是否存在类似于数据模板。我有一个js文件为我的项目谁链接在所有网页使用我链接他们在母版页。
我想定义一些常量,这些常量是在一个名为Globals的c#类中定义的。如何在项目中使用的js文件中配置或访问它们。
我需要一个东西,当代码加载到客户端系统上时,js文件上的一些变量从类c#设置。
假设我在Razor中编写的代码中定义了它们
变量名称@glboals.appName;
但是如果我在文件中定义它们,它们永远不会像在视图中一样呈现它们。
所以当文件是独立文件而不是嵌入在视图中时,它们在js文件中应用常量的任何方式都是如此。
所以这个问题的任何解决方案
发布于 2011-03-14 16:46:12
是像这样吗?
<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中创建一个新规则:
routes.MapRoute(
"CustomJs", // Route name
"Js/Variables", // URL with parameters
new { controller = "DynamicScripts", action = "JsVariables", id = UrlParameter.Optional } // Parameter defaults
);并在您的html jus中添加一行:
<link href="@Url.Content("~/Js/Variables")" type="text/javascript" />有更多的方法可以做到这一点,比如使用RegisterStartUpScript,但上面的技巧(虽然我将其用于CSS而不是JavaScript)是我使用最多的。
发布于 2011-03-14 16:46:57
您可以在视图master中定义如下脚本,并在每个视图中使用config:
<script type="text/javascript">
var Config = {};
Config.appName = '<%= glboals.appName %>';
</script>这是mvc2的例子,你可以在razor中做同样的事情。
https://stackoverflow.com/questions/5296376
复制相似问题