2
|
Adrian Grigore · 技术社区 · 15 年前 |
![]() |
1
2
使用视图和MVC的模板化功能是实现这一点的一个很好的方法。它很容易维护,很容易理解,并且可以很快完成工作。唯一真正的诀窍是让它提供正确的内容类型。这样做:
实际上可以得到文本/HTML内容类型。诀窍是确保你得到最后一个词,把它添加到你的控制器中:
您将得到正确的内容类型;viewresult似乎强制它使用text/html。 |
![]() |
2
3
文件扩展名,不管是JS、ASPX、ASHX、BLA、FOO,不管什么都不重要。如果服务器端生成的javascript不是特定于某个页面的,那么创建一个aspx页面来呈现javascript就可以了。 我们经常使用HTTP处理程序在系统中生成动态javascript。我们还确保将响应头设置为text/javascript,以便让客户机浏览器知道我们正在发送回javascript。 |
![]() |
3
1
我们使用 ScriptDataBlock control from JsonFx 向页面本身发出变量。它就像一个字典,其中键是变量名(例如“mynamespace.myvar”),值是一个普通的c值(包括整个对象)。控件将发出适当的命名空间生成和类型转换为本机JavaScript类型。所以从这个意义上说,它最终不是“尴尬”或“容易出错”:
如果您正在执行外部文件,那么一般的.ashx处理程序可能是您的最佳选择。它将比整个ASPX页面更轻,并为您提供对输出的非常原始的控制。您需要确保的是将“content type”响应头设置为“text/javascript”(技术上不正确,但最常见的mime类型),对于不尊重内容类型头的Internet Explorer,还将“content disposition”头设置为“inline;myscriptname.js”,以便它知道内容的扩展。 另外,如果这些确实是“常量”而不是运行时计算的数据,那么您需要将“expires”头设置为将来的某个日期,以鼓励浏览器缓存结果。这将进一步减少您的服务器请求。 编辑: 如果正在创建javascript,则没有doctype。doctype仅用于标记。 |
![]() |
4
1
您正在使用MVC框架(您的问题被标记为这样)对吗?如果是这样,您可以创建一个操作,该操作返回将在页面加载时执行的JavaScript结果:
然后您可以将其添加到您的ASPX/母版页:
|
![]() |
user1946932 · .Net正则表达式在所有字符前添加空格 6 月前 |
![]() |
TSDrake · 发布ASP。没有特定文件夹的.NET应用程序 6 月前 |
![]() |
Vengat Ramanan · 用户登录Asp时隐藏导航和页脚。网络核心 10 月前 |
![]() |
ramamoorthy_villi · 输入验证错误外键字段 11 月前 |