【问题标题】:Back slash causing problems in javascript反斜杠导致 javascript 出现问题
【发布时间】:2014-12-13 07:16:20
【问题描述】:

我在 c# 中生成一些 html,并使用数据库中的一些数据将其分配给 aspx 中的文字。 在下面的代码中 offtitle.Rows[off]["Offeringtitle"].ToString() 带来一个带有反斜杠 '\' 的值

sb.Append("<li><a href=\"#\" onclick=\"popupIncSummary('");
sb.Append(offtitle.Rows[off]["Offeringtitle"].ToString());
sb.Append("')\">" );
sb.Append(offtitle.Rows[off]["Offeringtitle"].ToString());
sb.Append("</a></li>");

此反斜杠导致页面加载时 javascript“未终止的字符串常量”出现错误。

请在这方面帮助我 谢谢

【问题讨论】:

  • 为什么要以这种方式生成 HTML?为什么不使用视图引擎?
  • 那你为什么要用stringbuilder手动序列化HTML呢?在网络表单中使用绑定。
  • 您能详细说明一下吗?

标签: javascript c# asp.net escaping backslash


【解决方案1】:

这是一个使用 web 表单而不是使用 stringbuilder 序列化来呈现 HTML 的示例

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        var tempList = new List<object>();
        tempList.Add(new { Title = "test" });
        Repeater1.DataSource = tempList;
        Repeater1.DataBind();
    }
}

在我们看来:

<asp:Repeater ID="Repeater1" runat="server">
    <ItemTemplate>
        <a href="#" onclick="popIncSummary(<%# Eval("title") %>)">
            <%# Eval("title") %>
        </a>
    </ItemTemplate>
</asp:Repeater>

【讨论】:

    猜你喜欢
    • 2020-12-25
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多