2014-08-27 3 views
0

ASP.NET MVC 5 앱에는 사용자가 가격을 입력 할 수있는 양식이 있습니다. 물론 그 값은 항상 정수가 아니므로 모델에서 double으로 정의했습니다. 사용자가 값을 입력하면 10000.00을 입력하고 제출 버튼을 누르면 컨트롤러에 전송 된 모델의 속성 가격이 항상 0.0으로 설정됩니다. 어떤 아이디어?ASP.NET MVC 5 double 값은 항상 컨트롤러에서 0.0입니다.

내 속성으로 모델에 정의되어

: 내보기에서

 [Required(ErrorMessageResourceType = typeof(Resources), ErrorMessageResourceName = "_errorEmpty")] 
     [Display(Name = "_carPrice", ResourceType = typeof(Resources))] 
     public Decimal Cijena { get; set; } 

나는 이런 식으로 사용하고 있습니다

  <div class="form-group"> 
       @Html.LabelFor(model => model.Cijena, new { @class = "col-md-2 control-label" }) 
       <div class="col-md-10"> 
        @Html.TextBoxFor(model => model.Cijena, new { @class = "form-control", id = "cijena" }) 
        @Html.ValidationMessageFor(model => model.Cijena) 
       </div> 
      </div> 

그리고 내 컨트롤러 :

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult AddNewCar([Bind(Include = "Model, GodinaProizvodnje, GodinaKupnje, DrugiID, Cijena, RegOznaka, RegOd, RegDo, SelectedCityId")] AddCar car) 
    { 
    . 
    . 
    . 
    } 

그리고 모델은 값에서 제출 값에 대한보기에서 컨트롤러로 항상 전달됩니다. 나는 Decimal, Double, Float로 정의 된 속성을 시도했습니다. ... 항상 0 http://prntscr.com/4hel3f

+0

해당 속성의 데이터 유형은 무엇입니까? – HaBo

+0

더블로 정의했습니다 – user3697231

+2

모델,보기 및 컨트롤러 코드를 게시하십시오 –

답변

2

나는 en-us 문화권에서 앱을 실행하지 않는 것 같아요.

double.Parse로 간주되는 소수점 구분 기호가 "."이되도록 스레드 culture를 en-us로 변경해보십시오. 대신에 ",".

<configuration> 
<system.web> 
    <globalization 
     enableClientBasedCulture="true"   
     culture="en-GB"/> 
</system.web> 

은 또는 당신은 더블/플로트에 대한 사용자 정의 바인더를 만들 수 있습니다.