【问题标题】:ASP.NET Replacing Line Break with HTML br not workingASP.NET用HTML br替换换行符不起作用
【发布时间】:2011-03-15 00:13:34
【问题描述】:

嗨 我正在尝试使用 ASP.NET 多行文本框将一些信息提交到数据库中。 我有以下代码:

Dim noteContent As String = Replace(txtNoteContent.InnerText.ToString(), vbCrLf, "<br />")
Shop.Job.Notes.addNote(Request.QueryString("JobID"), ddlNoteFrom.SelectedValue, ddlNoteTo.SelectedValue, noteContent)

addNote的功能代码是:

Public Shared Sub addNote(ByVal JobID As Integer, ByVal NoteFrom As Integer, ByVal NoteTo As Object, ByVal NoteContent As String)
            Dim newNote As New Job_Note
            newNote.Date = DateTime.Now()
            newNote.JobID = JobID
            newNote.NoteByStaffID = NoteFrom
            If Not NoteTo = Nothing Then
                newNote.NoteToStaffID = CInt(NoteTo)
            End If

            newNote.NoteContent = NoteContent

            Try
                db.Job_Notes.InsertOnSubmit(newNote)
                db.SubmitChanges()
            Catch ex As Exception
            End Try

        End Sub

当它提交时,编译器似乎没有检测到文本框中输入了换行符。我已经调试并单步执行了代码,果然,它只是忽略了换行符。如果我尝试替换另一个字符而不是换行符,它可以正常工作。

这似乎与我的函数、LINQ 插入或类似的东西没有任何关系,它只是没有检测到换行符。我尝试过 VbCr,也尝试过 chr(13),但它们也不起作用。

有人可以帮助我吗?我已经尝试了一个多小时的广告搜索尝试对此进行排序。

谢谢

【问题讨论】:

    标签: asp.net html vb.net


    【解决方案1】:

    当您进行替换时,您应该检查 VbCrLf(Windows 换行符)、VbLf(Unix 换行符)和 VbCr(Mac 换行符)。如果记忆正确,HTML textarea 元素中的标准换行符是 "\n"(又名 VbLf),因此您可能只需在代码中将 VbCrLf 替换为 VbLf 就可以了,但我个人总是只检查它们为了安全。

    示例

    Dim htmlBreakElement As String = "<br />"
    Dim noteContent As String = txtNoteContent.Text _
        .Replace(vbCrLf, htmlBreakElement) _
        .Replace(vbLf, htmlBreakElement) _
        .Replace(vbCr, htmlBreakElement)
    Shop.Job.Notes.addNote(Request.QueryString("JobID"), ddlNoteFrom.SelectedValue, ddlNoteTo.SelectedValue, noteContent)
    

    【讨论】:

    • 非常感谢!似乎不同的角色起作用了。我会确保我记得这个!再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 2022-08-07
    • 1970-01-01
    相关资源
    最近更新 更多