从服务器动态生成 JavaScript 代码 - MVC 4.
Dynamically Generate Javascript Code from Server - MVC 4
我正在使用MVC 4 Web Api,我需要公开一个端点,客户端可以使用该端点在其网页上呈现代码。像这样的东西
<script type="text/javascript" src="http://server/endpoint"/>
当上述行包含在网页中时,服务器应该返回一个应该自动执行的javascript代码。
例如,如果服务器返回代码 - alert('hello')
,则客户端网页(使用脚本)应自动弹出"hello"。
服务器端代码可以如下所示。在这种情况下,服务器返回 javacript 代码以在浏览器中编写表。基本上,这用于返回大学中特定教授的出版物列表。公开该点,以便个人可以在其网页中包含脚本以显示其出版物
// GET api/values/5
public string Get(int id)
{
var html = "<table><tbody>";
html += "<tr>";
html += "<td>row 1, col 1</td>";
html += "<td>row 1, col 2</td>";
html += "</tr>";
html += "<tr>";
html += "<td>row 2, col 1</td>";
html += "<td>row 2, col 2</td>";
html += "</tr>";
html += "</tbody></table>";
var script = string.Format(@"<script type='text/javascript'>document.write('{0}')</script>", html);
return script;
}
任何想法如何实现这一点。我尝试使用Response.Write("alert('hello')")
但它不起作用。
1 - 如果你将在脚本标签中使用端点,你不需要在 de get 方法中重写脚本标签。
2 - 您尝试返回的代码不是 javascript 代码,这是一个 html 代码,在调用时不会运行,而是脚本标记。
3 - 尝试这样做:
.html:
<script type="text/javascript" src="http://server/endpoint"/>
网络接口:
public string Get(int id)
{
return "alert('hello world');";
}
我正在使用带有 REST 终结点的 WCF 服务,我的脚本也被视为字符串,因为它在双引号之间被引用。
"alert('hello world');"
而不是alert('hello world');
我在这里找到了解决方案:https://viswaug.wordpress.com/2008/05/22/customizing-the-response-serialization-in-wcf-rest-services/
您必须将响应的内容类型设置为 application/x-javascript
并将字符串包装在 MemoryStream 中,如下所示:
public Stream GetSomeScript()
{
WebOperationContext context = WebOperationContext.Current;
context.OutgoingResponse.ContentType = "application/x-javascript";
const string TEXT_TO_SEND = "alert('hello world');";
MemoryStream ms = new MemoryStream();
StreamWriter sw = new StreamWriter(ms);
sw.Write(TEXT_TO_SEND);
sw.Flush();
ms.Position = 0;
return ms;
}
希望这有帮助。
- 阻止MVC视图中的C#代码在加载时执行
- MVC 4:使用 JQUERY 和 PartViewResult 动态创建 HTML 文本框.如果代码是动态添加的,如何
- 在 MVC 应用程序中组织 JS 代码
- Ajax get jsonp给出错误代码500“;请求被阻止”;来自MVC应用程序
- 用于导出Excel的.Net MVC 4.5 JqGrid按钮功能不起作用.什么'我的代码错了
- MVC:如何使用JavaScriptSerializer将代码解码为c#中编码的JS
- MVC - JS window.location.href 将代码插入 URL
- 从服务器动态生成 JavaScript 代码 - MVC 4.
- 预检响应具有无效的 HTTP 状态代码 405 - AngularJS + Spring MVC
- 在 MVC 中更改文本框日期时 asp.net 触发控制器代码
- 在代码点火器中将代码转换为 MVC 类型
- “样式”代码在 MVC 模式中的位置
- 有哪些可能的方法可以将 knockoutjs 视图模型代码与 asp.net mvc 视图分离,并对其进行 mvc 服务
- 在 MVC Razor foreach 循环中编写 JavaScript 代码
- 如何在客户端使用HTML5 / Javascript和控制器上的C#代码在MVC中将录制的视频作为blob发布/上传
- 如何在 ASP.NET MVC 应用程序中组织 JavaScript 代码
- 在 MVC 服务器端代码中动态创建和缩小 JavaScript ASP.NET
- 如何在MVC中使用cryptoJs解密代码背后的加密值
- 在MVC的视图文件夹中将Razor代码转换为aspx代码
- 在c#代码MVC . net中检索html中的id元素