将字符串从控制器传递到部分视图作为 javascript 函数参数
Posted
技术标签:
【中文标题】将字符串从控制器传递到部分视图作为 javascript 函数参数【英文标题】:Pass a string from the controller to a partial view as javascript function parameter 【发布时间】:2011-10-17 03:18:02 【问题描述】:我有一个控制器
公共动作结果控制器() 视图类视图 = 新视图类(); ... return PartialView("Tab", view);其中的视图类类似于,字符串 A 和 B 是我编译的 JSON 字符串。
公共类 ViewClass 公共字符串 A get;set; 公共字符串 B get;set;在部分视图中,我想做
<script type="text/javascript">
RunMap( @Model.A, @Model.B);
</script>
问题是“被解析为”,就像 "City": 进入函数。我该如何解决这个问题?
【问题讨论】:
【参考方案1】:使用@html.Raw
将字符串视为原始 HTML(例如 MVC 不会对其进行编码)
<script type="text/javascript">
RunMap(@Html.Raw(Model.A), @Html.Raw(Model.B));
</script>
当然,您需要确保它仔细处理了输入(例如数据)。
【讨论】:
【参考方案2】:这应该工作:RunMap( "@Model.A", "@Model.B");
如果您想将它们作为 JSON 对象传递,请去掉引号。
【讨论】:
我在结果中得到了类似 "Cities":[&q....64635201372,"Cities":0) 的内容 你是如何创建 JSON 字符串的?也许您可以使用JsonValueProviderFactory
并将您的道具声明为Json
。这是一篇相关文章:haacked.com/archive/2010/04/15/…
我使用了 StringBuilder 并创建了自己的(因为我需要添加一些逻辑,请参阅我的 ViewClass)。如何正确声明返回类型以避免此问题?以上是关于将字符串从控制器传递到部分视图作为 javascript 函数参数的主要内容,如果未能解决你的问题,请参考以下文章