【问题标题】:reference javascript content coming from db instead of static file引用来自 db 而不是静态文件的 javascript 内容
【发布时间】:2019-03-08 00:43:43
【问题描述】:

我正在开发一个 asp.net 网络应用程序:

在网站文件夹中,我有一个名为“integrations”的文件夹,其中包含 js 文件列表(name1.js、name2.js、name3.js ...)

用户向 mvc 控制器方法发出 http 请求,并在其中输入“名称”。 此方法将“名称”作为视图模型的属性提供给包含以下代码的剃须刀视图: 此剃刀视图返回给用户。

之前的代码运行良好,但我想补充一点。实际上,您需要在文件夹集成中添加一个 js 文件, 当应用程序在生产中运行时,您不能这样做。 所以我不想让脚本标签引用放置在集成文件夹中的文件,而是让脚本标签包含 js 内容 来自这样的数据表: 名称:js内容 名称1:jscontent1 name2 : jscontent2

但我不知道如何更改:

<script src="~/integrations/@(Model.Name).js"></script>

收件人:

<script>>query in db by @(Model.Name) parameter to get corresponding jscontent</script>

【问题讨论】:

  • 只需使用包含您需要的模型创建另一个视图,然后使用&lt;script src="controller/view"&gt;&lt;/script&gt;
  • 所以我会有一个方法控制器在参数中接收一个名称,根据这个名称在 db 中查询 js 内容,并返回 js 内容?我认为这行不通,因为 src 需要一个 javascript 静态文件,而不是来自 db 的 javascript 内容

标签: javascript asp.net-mvc razor


【解决方案1】:

将其设为控制器/方法,您就可以免费使用缓存、身份验证等功能:

public class ScriptController
{
  public ActionResult Content(MyModel model)
  {
    var result = "alert("Hello World!");";
    return JavaScript(result);
  }
}

JavaScriptResult

然后在你的html中:

<script src="~/Script/Content?prop1=whatever"></script>

【讨论】:

  • 好的,感谢您快速而干净的回答。会试试的。只是一个相关的问题,您知道将javascript文件存储在纯文本列(varchar)还是二进制列(blob)中更好?
猜你喜欢
  • 2013-12-25
  • 2013-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-25
相关资源
最近更新 更多