问题描述
Hi
我正尝试使用ASP.NET多行文本框向数据库提交一些信息。
我有以下代码:
Dim noteContent As String = Replace(txtNoteContent.InnerText.ToString(),vbCrLf ,< br />)
Shop.Job.Notes.addNote(Request.QueryString(JobID),ddlNoteFrom.SelectedValue,ddlNoteTo.SelectedValue,noteContent)
$ c $
$ p $
addNote的函数代码是:公共共享Sub addNote(ByVal JobID作为整数,ByVal NoteFrom As整数,ByVal NoteTo As对象,ByVal NoteContent作为字符串)
Dim newNote作为新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()
赶上例外
结束尝试
结束小组
当它的提交的编译器似乎没有检测到已经输入到文本框中的换行符。我已经调试过了代码,确实,它只是忽略了换行符。如果我尝试替换另一个字符而不是换行符,它可以正常工作。
它似乎与我的函数,LINQ插入或类似的东西,它只是不检测换行符。我已经尝试过VbCr,并且也尝试过(13),但它们也不起作用。
有人可以帮我吗?
谢谢
当你做替换时,你应该检查VbCrLf(Windows Line Break),VbLf(Unix Line Break)和VbCr(Mac Line Break)。如果内存服务正确,那么HTML textarea元素中的标准换行符是\\\
(又名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)
HiI am trying to submit some information into a database using an ASP.NET multiline textbox.I have the following code:
Dim noteContent As String = Replace(txtNoteContent.InnerText.ToString(), vbCrLf, "<br />")
Shop.Job.Notes.addNote(Request.QueryString("JobID"), ddlNoteFrom.SelectedValue, ddlNoteTo.SelectedValue, noteContent)
The addNote's function code is:
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
When it submit's the compiler does not seem to detect that line breaks have been entered into the textbox. I have debugged and stepped through the code, and sure enough, it just ignores the line breaks. If I try and replace another character instead of a line break, it works fine.
It doesn't seem to be anything to do with my function, the LINQ insert or anything like that, it simply just doesn't detect the line breaks. I have tried VbCr, and also chr(13) but they do not work either.
Can someone help me? I have been trying ad searching for over an hour trying to sort this.
Thanks
When you do your replace, you should check for VbCrLf (Windows Line Break), VbLf (Unix Line Break) and VbCr (Mac Line Break). If memory serves correct, the standard newline in a HTML textarea element is "\n"
(aka VbLf), so you might just get away with replacing VbCrLf
with VbLf
in your code, but personally I always check for them all just to be safe.
Example
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)
这篇关于ASP.NET使用HTML br替换换行符无效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!