在Razor的Html.Raw中转义单引号javascript参数

时间:2014-07-04 12:04:52

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

那么如何在Razor的Html.Raw助手中引用java脚本函数参数呢? 为了能够调用定义的js函数,我看起来需要单引号参数..

输出NON转义参数时输出

@Html.Raw("<a onClick='copyRowValues(" + name + ", " + localTable + ", " + sqlName + ");' > " + name + " </a>");

翻译如下:

<a onclick="copyRowValues(ASN, ASN, ASN_RECORD_ID);">

看起来不错,但是当copyRowValues(...)js函数的那些参数不是单引号时,函数不会被调用。 所以当我添加这样的单引号时:

@Html.Raw("<a onClick='copyRowValues('" + name + "', '" + localTable + "', '" + sqlName + "');' > " + name + " </a>");

产生:

<a 'asn_record_id');'="" 'asn',="" asn',="" onclick="copyRowValues(">

用@或\逃避只是不适合我。 谢谢您的直接解决方案!

2 个答案:

答案 0 :(得分:0)

使用双引号是否有效? e.g。

@Html.Raw("<a onClick=""copyRowValues('" + name + "', '" + localTable + "', '" + sqlName + "');"" > " + name + " </a>");

答案 1 :(得分:0)

为什么不用没有Html.Raw()的解决方案?以某种方式使用它生成输出html的方法有点过时了。

尝试这样的事情:

<a onclick="copyRowValues(@name, @localTable, @sqlName)">@name</a>

希望它有所帮助。