您好 我试图使用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),但它们也没有用。
有人能帮助我吗?我一直在尝试广告搜索超过一个小时试图对此进行排序。
由于
答案 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)