0

我想将本地 javascript 变量设置为 html 帮助程序的输出。有关示例,请参见以下代码段:

<script type="text/javascript">
     $(function () {
              var dtypes = '@Html.DropDownList("TypeId",new SelectList(@ViewBag.MyTypes,"Value","Text"))';
      });
      alert(dtypes);
</script>

这不会给我警报。难道我做错了什么?谢谢你的帮助。

4

3 回答 3

1

您应该将您的 html 编码为有效的 JavaScript 字符串:

<script type="text/javascript">
 $(function () {
          var dtypes = '@Ajax.JavaScriptStringEncode(Html.DropDownList("TypeId",new SelectList(@ViewBag.MyTypes,"Value","Text")))';
  });
  alert(dtypes);
</script>
于 2013-05-15T20:14:12.253 回答
0

您可以简单地在引号前的字符串中使用@Ajax.JavaScriptStringEncode("")和。\

您的代码将是:

var dtypes = '@Ajax.JavaScriptStringEncode("Html.DropDownList(\"TypeId\", 
   new SelectList(@ViewBag.MyTypes,\"Value\",\"Text\"))")';
于 2014-10-20T09:04:51.277 回答
0

使用 @Ajax.JavascriptStringEncode() 编码您的 html 助手;并且不要忘记使用 .ToString() 将 Html.DropDownList Helper 转换为字符串。

这是一个例子:

<script type="text/javascript">
    $(function () {
      var dtypes = '@Ajax.JavaScriptStringEncode(Html.DropDownList("TypeId",new SelectList(@ViewBag.MyTypes,"Value","Text")).ToString())';
     });
    alert(dtypes);
</script>
于 2017-06-09T08:06:24.510 回答