2

У меня есть требование как @Html.TextBoxFor, чтобы показать валюту в формате, разделенном запятой, без принятия отрицательных значений и без специальных символов. В то же время, когда валюта недоступна, я меняю значение этого TextBoxFor на «недоступно». Как это можно достичь в представлении, используя десятичную проверку и поддержку ввода текста?@ Html.TextBoxFor Validation

@Html.TextBoxFor(m => m.SourceCurrencyValue, new { @Value=String.Format("{ViewBag.decimalplace}",Model.SourceCurrencyValue) }) 

ViewBag.decimalplace должно быть положение десятичной как 2 или 3.

ответ

0

Вы можете использовать RegularExpression - это один будет ограничивать количество знаков после запятой 2, но изменить соответствующим образом.

[RegularExpression(@"^\d+,\d{0,2}$", 
    ErrorMessage = "Your error message")] 
public decimal SourceCurrencyValue { get; set; } 

Просматривая ваш комментарий для уточнения, вы можете воспользоваться приведенной выше идеей. Атрибут данных создает атрибуты данных на элементе, когда он оказывается, если вы хотите сделать это на душе зрения основе, почему бы не попробовать установить эти атрибуты вручную:

@{ var regex = string.Format(@"^\d+,\d{{0,{0}}}$", ViewBag.DecimalPlaces); } 
@Html.TextBoxFor(model => model.SourceCurrencyValue, 
    new { data_val_regex_pattern = regex, data_val_regex = "Error message" }) 

Это будет изменить количество знаков после запятой, основанной на сколько вы проходите.

+0

Я ясно упомянул, как это можно достичь в поле зрения. Я знаю, что могу использовать регулярное выражение в модели. Но я хочу, чтобы эта логика происходила внутри, что-то вроде того, что я пытался. Это связано с тем, что я передаю десятичную позицию из действия контроллера. Для разных валют это будет другим. SO i can not hard code '{0,2}' в модели. – Sandy

+1

@ Sandy На самом деле вы не спрашивали **, как ** это можно было бы достичь в представлении. Я предложил альтернативное решение. В вашем вопросе неясно, что вы хотели сделать это на основе валюты. – ediblecode

+0

@Sandy См. Мое редактирование для более подходящего решения в вашем случае. – ediblecode

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