ASP.NET MVC中动态生成的Javascript、CSS [英] Dynamically generated Javascript, CSS in ASP.NET MVC

查看:25
本文介绍了ASP.NET MVC中动态生成的Javascript、CSS的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

ASP.NET 允许使用服务器标签(razor 或 ASPX)动态生成 HTML.但是除了使用内联(嵌入式)CSS/Javascript 之外,还有什么好的方法可以以相同的方式生成 *.js 或 *.css 内容.现在有了像 Ajax 这样的技术,越来越多的逻辑在 Javascript 中从服务器端转移到客户端.如果有机会使用 ASP.NET 为 HTML 生成提供的所有灵活性来动态生成 JS,那就太好了.

ASP.NET allows to generate HTML dynamically using server tags (razor or ASPX). But Is there any good way to generate *.js or *.css content the same way, other than using inline(embedded) CSS/Javascript. Nowadays with technologies like Ajax more and more logic moves from server-side to client side in Javascript. It would be great to have that opportunity to generate JS dynamically using all flexibility that ASP.NET provides for HTML generation.

例如,我的 Javascript 包含 Knockout 视图模型声明,在 Javascript 渲染期间从服务器加载初始数据,以及一些额外的 js 函数,所以在我的 Html 中而不是嵌入脚本em> 我想要这样的脚本引用:

For example, my Javascript contains Knockout view model declaration with initial data loaded from server during Javascript rendering, and some additional js-functions, so in my Html instead of embedded scripts I want to have script references like that:

<script src="~/Scripts/ContactViewModel.js?contactId=@Model.ContactId"></script>

另一个例子,开发人员可能需要它使用基于用户配置文件的 CSS.用户配置文件信息包含在 CSS 生成过程中必须遵守的样式信息(字体、颜色,而不仅仅是主题),因此在我看来,我将有以下内容:

Another example, where developer might need it is using user-profile based CSS. User profile information contains style information (fonts, colors, not just theme) that must be respected during CSS generation, so In my view I will have something like:

<link href="~/Styles/CurrentUserOverrides.css" rel="stylesheet" />

CurrentUserOverrides.css 将根据经过身份验证的用户的个人资料数据动态生成.

CurrentUserOverrides.css will be generated dynamically based on profile data of authenticated user.

如何使用 ASP.NET MVC 做到这一点?我想找到一个解决方案,让我可以像使用 ASP.NET 创建动态 HTML 一样轻松地完成此操作,并具有正常工作的智能以及 VS 为 ASP.NET 视图提供的所有其他功能.

How to do that using ASP.NET MVC? I want to find solution that will allow me to do this as easy as I create dynamic HTML using ASP.NET, with properly working intellisence and everything else what VS offers for ASP.NET views.

推荐答案

目前我找到的最佳解决方案如下:

The best solution so far I found for that is the following:

ASP 中的动态 Javascript 和 CSS.NET MVC 使用 Razor 视图

您只需创建视图:CurrentUserOverrides.css.cshtml、ContactViewModel.js.cshtml.此视图将包含单个 HTML 块(

登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆