9
我的場景看起來很常見,但到目前爲止我沒有找到好的解決方案。所以有MSSQL數據庫坐在後端的ASP.NET-MVC應用程序。該模型包括帶有字符串字段描述的類A,該描述需要被限制爲100個字符。它的聲明如下:字符串字段長度限制和換行符
[StringLength(100)]
public virtual string Description { get; set; }
在數據庫中的相應的列數據類型爲nvarchar與柱長度= 100。 在用戶界面中,說明字段由textarea表示,maxlength = 100。
現在問題出現在textarea中有換行符時。它們在客戶端被解釋爲1個字符,但在服務器端,它們由Environment.NewLine表示,它是2個字符(\ r \ n)。因此它超過了數據庫列長度(實際上服務器端驗證在整個後端事件之前失敗,但爲簡單起見,我們省略了驗證)。
我迄今發現的解決方案是:
- 添加在客戶端上一些神奇爲了解釋換行符在 textarea的兩個字符。我不喜歡這個解決方案,因爲它可能會讓用戶迷惑 。
- 用服務器端的\ n替換\ r \ n。看起來像一個黑客,可能 有一些副作用。
- 刪除/增加數據庫中的列長度。最簡單的一個 (不考慮服務器端驗證問題),但讓我們 表示情況並非如此。
我想除了那三個之外還應該有別的東西。