【问题标题】:Pass a string from the controller to a partial view as javascript function parameter将字符串从控制器传递到部分视图作为 javascript 函数参数
【发布时间】: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:} 进入函数。我该如何解决这个问题?

【问题讨论】:

    标签: javascript asp.net-mvc razor


    【解决方案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)。如何正确声明返回类型以避免此问题?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多