2013-10-02 67 views
1

我有以下問題。在我的數據庫中,我有一個類型爲「float」的屬性。當我使用Entity Framework創建模型時,相同的屬性由「double」字段表示。雙向null發佈到控制器

這是事情。在視圖中,如果我寫例如「23,22」數據註釋說它不是一個數字,並且如果我寫「23.22」通過驗證,但當它到達控制器時該屬性的值爲空。

任何想法爲什麼會發生?我一直在尋找信息,但沒有用。

在此先感謝!

編輯:我添加了我使用該屬性的代碼。

在模型類是這樣的:

public class TestObject{ 

     .... 
     public Nullable<double> attribute { get; set; } 
     .... 
     } 

在視圖:

 @Html.EditorFor(m => m.attribute) 

和Controller:

[HttpPost] 
    [ValidateAntiForgeryToken] 
    public ActionResult Test(TestObject test) 
    { 
    .... 
     return View(); 
    } 

如果我寫了 「23.22」,當我訪問控制器中的屬性值時,它是空的。

+1

你可以發佈你的模型,操作方法和視圖嗎?我們將能夠幫助您進一步診斷此問題。 – mattytommo

+0

看起來很好,它必須是提到的代碼之外的問題。你能發佈完整的模型/視圖嗎? – mattytommo

+0

我不知道'attribute'這個名字是否可能有一些特殊的含義,這會讓模型綁定器感到困惑。只是踢踢嘗試將屬性的名稱改爲別的。 – asymptoticFault

回答

1

作爲一種可接受的解決方案,您可以更改jQuery文化以允許逗號分隔符代替點。在這種情況下,double將被正確傳遞。

//For example German culture uses comma. Just add this line: 

    <script> 
    Globalize.culture("de-DE"); 
    </script> 
+0

答案本身沒有幫助,但由於「全球化」,我開始研究這個問題,並且找到了一種可行的方法。謝謝。 – Rodrigo

+1

@羅德里戈有同樣的問題。這個方法是什麼? –