簡體   English   中英

MVC 2-不保存十進制值

[英]MVC 2 - Decimal value is not saved

我當前正在為合同創建表格,其中一個字段用於折扣%,並且已在Entity Framework中聲明為Decimal。 在此輸入值並保存時出現問題。

快速的代碼概述:

EF:tblContract-> Rebate是一個小數字段。

創建/編輯視圖:

<%: Html.TextBoxFor(model => model.Rebate, new { @class="form-txt-normal" }) %>

我嘗試用不同的方式輸入數字。

75:當我給它一個可以解析為int的值時,它會將正確的值保存在字段中(奇怪的是,此后顯示時,沒有顯示小數點,只有75)。

75.25:我看着傳遞給[HttpPost] Edit方法的值(與Create相同)。 輸入十進制值時,變量為空。 我的輸出屏幕顯示發生了異常:

A first chance exception of type 'System.Linq.Dynamic.ParseException' occurred in ContractManagementTool.DLL

我還嘗試了75,25來排除關於小數點/逗號應該是什么的區域性設置,但是會發生相同的問題。 我還有其他幾個包含int的字段,它們的處理方式完全相同,唯一的區別是Entity Framework知道它們為Int32,而不是Decimal。 Int32全部正常工作,十進制無效。

我在這里想念什么嗎? MVC可以與整數一起使用嗎?

進一步更新:

我有一部分工作。 我沒有更改代碼(我將解釋一些jQuery除外)。

當我輸入75,25時,將Rebate變量正確地傳遞給該方法(這很有意義,因為我在比利時,我們使用小數點:)),我添加了一些jQuery來替換。 使用,當用戶輸入數據時,可以使其變得更容易。

當我發布變量時,小數折扣的值為75.25(現在EF接管了小數點)。 回扣已經存在於我的tblContract實體中,該實體已傳遞給該方法。 我執行db.ApplyCurrentValues(foo);

現在是妙語:在我的數據庫中,保存了值75。 沒有小數點,沒有。 因此,我現在可以將其正確傳遞給我的方法,但是無法將其保存在數據庫中。

最終更新:

我解決了 對於那些對答案感到好奇的人:如果您未指定小數位的小數位,則為0。我似乎記得EF的標准為2,但我可能會誤會。

找到了。 實體框架將我的小數舍入設置為整數(1.0)。 更改標准設置,問題已解決:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM