【问题标题】:passing server side mvc variables to javascript [closed]将服务器端 mvc 变量传递给 javascript [关闭]
【发布时间】:2013-02-11 22:19:55
【问题描述】:

我正在查看有关将服务器端变量从控制器操作传递到站点 html 标记并随后由站点上的 javascript 使用的最佳和最简单方法的反馈。

我正在使用 asp.net mvc4 并试图找到推荐的方法。

【问题讨论】:

  • 谷歌搜索提供了大量的结果...
  • @emrenevayeshirazi:哦,对 Stack Overflow 的评论多么有用!

标签: javascript asp.net-mvc asp.net-mvc-4


【解决方案1】:

你有几个选择。

一种是将数据属性或 id 附加到元素并使用 javascript 获取它们。

使用剃刀视图:

<div id="someid" data-name="@item.attribute"></div>

JS:

$('#someid').data('name')

或者您可以将数据直接渲染到脚本标签中。

使用剃须刀:

 var somevar = "@item"

您还可以 Json.Encode 更复杂的对象。

 var somevar = @Html.Raw(Json.Encode(object))

【讨论】:

  • 另外为了强调 Declan 的回答,如果你使用 var somevar = "@item"; 方法,你必须像他一样将它用引号括起来,否则可能会产生一个声明为 var somevar = ;。这对于字符串等可能看起来很简单,但在处理可空布尔值、可空整数等时就不那么明显了。
  • 我推荐第一种方法(在 div 或隐藏的输入标签中),以便更好地分离内容和代码。当您需要在 .cshtml 文件中引入
  • 关闭 - 对于那些使用网络表单的人:使用var somevar = "&lt;%=item%&gt;";
  • 我会说最好的方法是 data-attr 因为您没有任何依赖项可以在 UI 代码中包含脚本。函数服务() { this.data = $("...").data('info'); }; var 服务 = 新服务(); Service.prototype = { doSomething: function() { alert(this.data()); } }
猜你喜欢
  • 1970-01-01
  • 2015-01-15
  • 1970-01-01
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多