ASP.NET用HTML替换换行符不起作用

时间:2011-03-15 00:13:35

标签: asp.net html vb.net

您好 我试图使用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),但它们也没有用。

有人能帮助我吗?我一直在尝试广告搜索超过一个小时试图对此进行排序。

由于

1 个答案:

答案 0 :(得分:2)

进行替换时,应检查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)