访问服务器的标签内部Javascript视项目
-
18-09-2019 - |
题
我想用一些服务器的标签内部Javascript功能:
<%=Model.HtmlProperty%>
在过去的我必须储存这种价值中的一个隐藏的输入域,但是当一个酒店中包含HTML你得问题的特殊人物,例如报价。我想要避免进行编码的控制,以避免出现问题与特殊字符。
Rick Strahl有一个 夫妇 员额 在这个问题在一个网页形式的项目,但是我在寻找一个优雅的解决方案一视项目。
更新:罗伯特*哈维的回答以下建议进行编码html。再次, 不是我想要做的.最后,我想注入html脚本到fckeditor的实例。这必须在javascript。我试图找出如何访问的价值 <%=Model.HtmlProperty%>
内部javascript没有储存编码文本中的一个隐藏的输入单元。
解决方案 2
看来我是希望做到的-服务器使用标记的内部javascript是不可能的。我已经储存的串的内隐藏的输入单元,并作为每queen3的评论,似乎,我会必须保持在做什么我已经做。感谢大家的输入。
其他提示
借款从瑞克Strahl的职位,并改变的呼吁签署一点,功能,用于编码javascript string(后改变它变成一个扩展方法Html类)看起来是这样的:
public static string EncodeJsString(this HtmlHelper h, string s)
{
StringBuilder sb = new StringBuilder();
sb.Append("\"");
foreach (char c in s)
{
switch (c)
{
case '\"':
sb.Append("\\\"");
break;
case '\\':
sb.Append("\\\\");
break;
case '\b':
sb.Append("\\b");
break;
case '\f':
sb.Append("\\f");
break;
case '\n':
sb.Append("\\n");
break;
case '\r':
sb.Append("\\r");
break;
case '\t':
sb.Append("\\t");
break;
default:
int i = (int)c;
if (i < 32 || i > 127)
{
sb.AppendFormat("\\u{0:X04}", i);
}
else
{
sb.Append(c);
}
break;
}
}
sb.Append("\"");
return sb.ToString();
}
这应该能让你称呼它是这样的:
<%= Html.EncodeJsString(Model.HtmlProperty) %>
使用HTMLHelper写脚本上飞..
public static string WriteLightboxScript(this HtmlHelper helper, string galleryName)
{
var builder = new TagBuilder("script");
builder.MergeAttribute("type", "text/javascript");
builder.SetInnerText("$(function() {$('a[rel=" + galleryName + "]').lightBox();});");
return builder.ToString(TagRenderMode.Normal);
}
不隶属于 StackOverflow