Tôi gặp sự cố này trong ứng dụng mvc asp.net của mình.Các ký tự dòng mới trong vùng văn bản tăng độ dài văn bản trong C#
Trong một mô hình của tôi, có một trường "Mô tả". Cột cơ sở dữ liệu cho các trường này được đặt thành NVarchar(300)
.
Theo quan điểm của tôi, tôi đang tạo một vùng văn bản như sau.
@Html.TextAreaFor(m => m.Description, new { maxlength = "300" })
Tôi đang sử dụng "jquery.validate.unobtrusive.min.js" để xác thực phía máy khách. Vì vậy, khi người dùng nhập văn bản và độ dài nội dung dài hơn 300 ký tự, nó hiển thị thông báo "Vui lòng nhập không quá 300 ký tự".
Mọi thứ hoạt động tốt cho đến khi sceanario sau đến. Người dùng nhập dữ liệu sau vào vùng văn bản.
f
f
f
f
f
f
f
f
sdfa
(nội dung này có 8 dòng mới)
Theo xác nhận "phô trương" nội dung này có chiều dài 300 (đếm từng dòng sản phẩm mới "\ n" như một nhân vật duy nhất) để xác nhận đi và trang đăng lại.
Trong mã C# của tôi, do mã hóa, cùng một nội dung trở thành fo chiều dài 308 (Đếm mỗi dòng mới "\ r \ n" là 2 ký tự) trong tern không hoạt động cơ sở dữ liệu vì nó chỉ cho phép 300 nhân vật.
Nếu ai đó nói rằng tôi cần có thuộc tính StringLength
trên thuộc tính cụ thể này, tôi có lý do sau đây để không có nó.
Nếu tôi đặt thuộc tính này, xác thực phía máy khách không xảy ra cho thuộc tính cụ thể này, nó đi tới máy chủ và vì mô hình không hợp lệ, nó quay lại trang có thông báo lỗi.
Vui lòng cho tôi biết giải pháp có thể là gì?
Chia tách không hoàn toàn phù hợp với tôi. Tôi gặp sự cố với dấu ngắt dòng, không được tính bằng phương pháp của bạn. Tôi đã sử dụng thay thế này: '// thay thế các ký tự dòng mới bằng 2 dấu cách để làm cho số lượng phù hợp với máy chủ. var replaceValue = value.replace (/ (\ n)/gm, ""); return replaceValue.length; ' Lưu ý: khối mã bằng cách nào đó chỉ hiển thị một không gian nơi cần có hai. – Ben