javascript - 在应用程序启动时生成路由 URL 列表并插入到 MVC 中的 javascript 文件中

标签 javascript ajax asp.net-mvc razor global-variables

我的应用程序使用 JavaScript 中的 AJAX 调用(使用 $.get$.post 等)对 Action 方法进行许多调用

我现在正在尝试清理我的 javascript 文件,唯一阻止我从页面中完全删除内联脚本的是需要让我的操作方法路由在页面中呈现,以便我可以将它们设置为我的正确变量JavaScript。

示例类似于

url = '@Url.Action("SomeMethod","SomeController",new{area="SomeArea"})'

我想做的是在 global.asax 中运行一个方法来生成我需要的路由(我手动编程它们没有问题),然后根据fileapp.js——其中包括所有生成的硬编码 URL——并在需要时更改 url。

这样我就可以将所有 url 放在全局对象中,而不必使用内联脚本来渲染 url。这可能吗?

最佳答案

因此,经过更多研究后,我找到了适合我想要的解决方案:

  1. 创建 ActionResult返回一个局部 View 的方法,基本上是 app.js排队。
    • 或者直接在 Controller 方法中编写javascript并返回 JavasScriptResult , as shown here ——尽管这是不受欢迎的。
  2. 创建 ActionFilterAttribute为上述方法设置缓存,per these instructions .
  3. 包括 <script>标签 <head>其源代码指向 javascript actionresult 方法。

最终结果:

public JavaScriptResult GetApp()
{
 return PartialView("App.js.cshtml");
}

将缓存属性设置为每 24 小时(或其他)一次,以便我对 Controller 的调用仅被命中一次。现在我可以确保更改后的网址传播到客户端,而无需使用内联渲染。

关于javascript - 在应用程序启动时生成路由 URL 列表并插入到 MVC 中的 javascript 文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18969114/

相关文章:

asp.net-mvc - Globalize.addCultureInfo 不是函数

javascript - AngularJS ui-router不加载模板

php - WebRTC 候选信息末尾的数据是什么?

javascript - 检查字符串是否与变量名相同

c# - 将 Javascript 对象传递给 C#

asp.net-mvc - 在 Azure 中使用 DataAnnotations 进行验证显示错误的文本

c# - 用 HTML5 播放 wav

javascript - 向网页添加 javascript 函数

java - 使用 ajax 从浏览器发送到基于 java 的服务器的最佳数据格式?

javascript - 依赖下拉列表生成