2016-11-18 3 views
3

Я хочу после десятичной запятой только 2 цифры.Как ограничить до 2 десятичных знаков в TextBoxFor в MVC?

@Html.TextBoxFor(m => m.Viewers, new { @tabindex = 7 }) 

Необходимость вывода, как это:

56,23

456,20

1,21

подобное ..

+0

является приемлемым решением JQuery? –

+1

Вы попробовали string.Format? –

+0

@ Редди. Я конечно. это. – lashja

ответ

1

Я использовал шаблоны редактора в своих представлениях. Я бы определил модель представлений, которые специально приспособленную к требованиям данной точки зрения (в данном случае, ограничивая его до 2 знаков после запятой):

[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)] 
public decimal Viewers{ get; set; } 

или Вы можете просто использовать регулярные выражения с моделью как

[RegularExpression(@"^\d+.\d{0,2}$] 
public decimal Viewers{ get; set; } 

, а затем:

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

или TextBoxFor() также будет работать с регулярным выражением

@Html.TextBoxFor(m => m.Viewers, new { @tabindex = 7 }) 
+2

приятное решение;) –

1

Я предлагаю вам отформатировать десятичные на стороне клиента, как это:

В вашем ViewModel:

[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)] 
public decimal Viewers { get; set; } 

А на ваш взгляд использования EditorFor:

@Html.EditorFor(m => m.Viewers, new { @tabindex = 7 }) 

Когда это значение сообщения на ваш Controller просто обрезать его до 2 Nums.

Если вам нужно использовать Regex проверки:

[RegularExpression(@"^\d+\.\d{0,2}$")] //this line 
[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)] 
public decimal Viewers { get; set; } 
1

В View

@Html.TextBoxFor(m => m.Viewers, new { @tabindex = 7 }, new { Value=String.Format("{0:0.##}",Model.Viewers) }) 

В контроллере также можно форматировать String.Format ("{0:. 0 ##}", Object .viewers)

Объект- Средство модель (содержит поле Зрителей), который передается Просмотр

Надеется, что это полезно

1

Если я использую.

String.Format("{0:0.00}", 123.4567);  

Так результат:

// "123.46" 

Таким образом, вы можете попробовать это

@Html.TextBoxFor(m => String.Format("{0:0.00}", m.Viewers) , new { @tabindex = 7 }) 
+0

«Ошибка HTTP 404.0 - Не найдено Ресурс, который вы ищете, удален, изменилось его имя или временно недоступно. " - Получилась такая ошибка. – lashja

+1

попробуйте перестроить это не ошибка HTML-кода, пожалуйста, обратитесь за помощью к этой ошибке здесь. https://support.microsoft.com/en-us/kb/942041 –

0

$("#Viewers").change(function (e) { 
 

 
      var num = parseFloat($(this).val()); 
 
      $(this).val(num.toFixed(2)); 
 
});
@Html.TextBoxFor(m => m.Viewers, new { @tabindex = 7 })

Спасибо за все ответить мне !!! :)

Смежные вопросы