将字符串从控制器传递到部分视图作为 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>

问题是“被解析为”,就像 &quotCity&quot: 进入函数。我该如何解决这个问题?

【问题讨论】:

【参考方案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 函数参数的主要内容,如果未能解决你的问题,请参考以下文章

如何将项目从淘汰赛 foreach 传递到部分视图作为数据绑定?

如何将字符串从根视图控制器传递到另一个视图?

如何将字符串中的加号从视图传递给控制器​​?

将数据从视图控制器传递到另一个视图控制器

如何使用 AJAX 将数据从视图传递到控制器

从按钮将值传递给视图控制器字典