[asp.net-mvc]服务器值进入.NET MVC 中的 JavaScript 的最好方法吗?

发布时间: 2017/3/25 4:06:37
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

使用ASP.NET MVC + jQuery:

我需要用我的客户端JavaScript中服务器所拥有的某些值。

现在,我已经暂时了脚本标记在实际视图中像这样︰

<script>
var savePath = '<%= Url.Action("Save") %>';
</script>

但我想要将其移动到的东西更清洁、 更易于维护。想要的东西的创建一个 JavaScript 控制器/操作,然后返回JSON对象,包含有我需要的所有数据使用的视图为 src 为脚本标记线沿线。

任何其他的想法吗?

解决方法 1:

这实际上取决于。对于简单的内联,上面一行效果相当好。如果你需要大量的服务器数据在JavaScript中,你认为方法可能奏效。然而你会获得相同的结果,如果你只是渲染输出所需的 javascript 代码的分部视图。

还有一个问题,因为你可能最终与 JavaScript 混合服务器数据。最好的办法是尽量减少服务器数据到绝对最低限度,并将它传递给 JavaScript 函数而不是用 JavaScript 代码混合。那就是,不

function func() {
  var path = '<%= Url.Action("my") %>';
  $(".selector").append("<img src='" + path + "' />");
}

function AppendImageToSelector(path) {
  $(".selector").append("<img src='" + path + "' />");
}

function func() {
  var path = '<%= Url.Action("my") %>';
  AppendImageToSelector(path);
}

这使得代码更干净、 更容易地理解,有助于将 JavaScript 移动到单独的.js 文件,有助于重新使用 JavaScript 时需要等等。

如果你需要大量的服务器相关的 Url,在 JavaScript 中,你可能想要创建像全球 (在母版页) 函数

function url(relative) {
   return '<%= Url.Content("~") %>' + relative;
}

和从 JavaScript 脚本使用它。这种技术是可疑的虽然;例如,它不使用 MVC 路由规则,因此 Url 可能不同步;等。

赞助商