2013-07-24 3 views
1

항목 금액을 통화 형식으로 표시해야하는 페이지가 있습니다. 첫 번째 것은 통화가 입력되는 곳이고 두 번째 것은 통화가 표시되는 곳입니다.MVC EditorFor의 통화 형식을 설정하는 방법은 무엇입니까?

EditorFor에서 R로 표시된 Rands를 표시하고 그 값을 10 진수로 표시하고 싶습니다. 나는 여러 가지 방법을 시도하고이 동작하지 않습니다

<div class="editor-field"> 
    @Html.EditorFor(model => model.TransactionModel.Price) 
</div> 

:

여기 내 EditorFor입니다.

이 예제에서는 두 번째 줄에 'CurrencyPrice'가 무엇인지 알지 못합니다.

var CurrencyPrice = '@Model.TransactionModel.Price'; 
document.getElementById('TransactionModel.Price').value = '@string.Format("{0:C}", CurrencyPrice)'; 

나는 또한 내 transactionModel에서 이러한 시도 :

//[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:c}")] 
//[UIHint("Currency")] 
//[DisplayFormat(DataFormatString = "{0:F2}", ApplyFormatInEditMode = true)] 
//[DataType(DataType.Currency)] 
public decimal Price { get; set; } 

누군가가 내가이 권리를 얻을 수있는 방법을 말해 줄래을?

지금 당장은 모든 작업 방법을 수락 할 것입니다. 아래 MVC 3에서

@Html.TextBoxFor(model => model.TransactionModel.Price, "{0:c}") 

:

답변

2

은 MVC 4를 사용하면 형식 문자열을 포함하는 TextBoxFor 방법을 사용할 수 있습니다

@Html.TextBoxFor(model => model.TransactionModel.Price, 
    new { @Value = model.TransactionModel.Price.ToString("c") }) 

EditorFor 힘 또는 작동하지 않을 수 있습니다. 개인적으로, 나는 그것에 문제가 있었다. 더 많은 영감을 얻으려면 this answer을 참조하십시오.

+0

둘 다 작동하지 않았습니다. MVC 4를 사용하고 있습니다. 텍스트 상자는 그대로 평면 숫자 형식으로 유지됩니다. – Pomster

+0

web.config에서 cultureinfo를 설정 했습니까? ''섹션에서 :''. 그것은 R에 대한 R 표시에 대한 나를 위해 작동합니다. – dlebech

+0

그걸 설정했는데 아무런 효과가 없었습니다. – Pomster

0

나는 나를 위해 일할 수 없습니다. 이것은 모델에서 Data Annotation을 사용하여 작업 한 솔루션입니다.

[Required] 
[DisplayName("Average Yearly Salary")] 
[Numeric] 
[RegularExpression(@"^\$?\-?([1-9]{1}[0-9]{0,2}(\,\d{3})*(\.\d{0,2})?|[1-9]{1}\d{0,}(\.\d{0,2})?|0(\.\d{0,2})?|(\.\d{1,2}))$|^\-?\$?([1-9]{1}\d{0,2}(\,\d{3})*(\.\d{0,2})?|[1-9]{1}\d{0,}(\.\d{0,2})?|0(\.\d{0,2})?|(\.\d{1,2}))$|^\(\$?([1-9]{1}\d{0,2}(\,\d{3})*(\.\d{0,2})?|[1-9]{1}\d{0,}(\.\d{0,2})?|0(\.\d{0,2})?|(\.\d{1,2}))\)$", ErrorMessage = "The value must be in currency format ")] 
[StringLength(12)] 

나는 RegM에게 JohnM here을 가지고 있습니다.

이것은 모두에게 어렵지 않습니다. 나는 ASP.NET 응용 프로그램에서 통화의 유효성을 검사하는 데 많은 노력을 기울여야한다는 것에 매우 놀랐습니다! 30 초가 걸렸어야했는데 몇 시간의 연구와 테스트가 필요했습니다.