Я хочу после запятой только 2 цифры.
@Html.TextBoxFor(m => m.Viewers, new { @tabindex = 7 })
Нужен такой вывод:
56.23
456.20
1.21
как это..
Я хочу после запятой только 2 цифры.
@Html.TextBoxFor(m => m.Viewers, new { @tabindex = 7 })
Нужен такой вывод:
56.23
456.20
1.21
как это..
Я бы использовал шаблоны редактора в своих представлениях. Я бы определил модели представления, которые специально адаптированы к требованиям данного представления (в данном случае ограничивая его двумя десятичными знаками):
[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)]
public decimal Viewers{ get; set; }
или вы можете просто использовать регулярное выражение с такой моделью, как
[RegularExpression(@"^\d+.\d{0,2}$")]
public decimal Viewers{ get; set; }
а затем в html:
@Html.EditorFor(m => m.Viewers)
или TextBoxFor()
также будет работать с регулярным выражением
@Html.TextBoxFor(m => m.Viewers, new { @tabindex = 7 })
Ввиду
@Html.TextBoxFor(m => m.Viewers, new { @tabindex = 7 }, new { Value=String.Format("{0:0.##}",Model.Viewers) })
В контроллере вы также можете отформатировать String.Format("{0:0.##}",Object.viewers)
Модель Object-Means (содержит поле Viewers), которая передается в View
Надеюсь, это полезно
Я предлагаю вам отформатировать ваши десятичные числа на стороне клиента следующим образом:
В вашем ViewModel
:
[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)]
public decimal Viewers { get; set; }
И в вашем представлении используйте EditorFor
:
@Html.EditorFor(m => m.Viewers, new { @tabindex = 7 })
Когда это значение появится в вашем Controller
, просто уменьшите его до двух цифр.
Если вам нужна проверка, используйте Regex:
[RegularExpression(@"^\d+\.\d{0,2}$")] //this line
[DisplayFormat(DataFormatString = "{0:n2}", ApplyFormatInEditMode = true)]
public decimal Viewers { get; set; }
Если я использую.
String.Format("{0:0.00}", 123.4567);
Итак, результат:
// "123.46"
Итак, вы можете попробовать это
@Html.TextBoxFor(m => String.Format("{0:0.00}", m.Viewers) , new { @tabindex = 7 })
$("#Viewers").change(function (e) {
var num = parseFloat($(this).val());
$(this).val(num.toFixed(2));
});
@Html.TextBoxFor(m => m.Viewers, new { @tabindex = 7 })
Спасибо всем, что ответили мне!!! :)