2015-04-09 3 views
1

Я сейчас убираю свой проект C# MVC4 с помощью методов проверки и т. Д., Большинство из них прекрасно, за исключением текстовых полей IP-адреса. Здесь admin добавляет IP-адрес рабочих станций. Я не знаю, как отформатировать текстовое поле в пространствах "", "". "." "." ". Есть идеи?Форматировать текстовое поле для получения IP-адреса на MVC

<div class="editor-label"> 
     @Html.LabelFor(model => model.AssignedIP) 
    </div> 
    <div class="editor-field"> 
     @Html.EditorFor(model => model.AssignedIP) 
     @Html.ValidationMessageFor(model => model.AssignedIP) 
    </div> 

модель

 [Required] 
    [StringLength(30)] 
    [Display(Name = "Location Name")] 
    public string LocationName { get; set; } 

    public string AssignedIP { get; set; } 
+0

может быть, вы можете попробовать некоторые JQuery плагин, если это опция: http://digitalbush.com/projects/masked-input-plugin/ – freshbm

+0

и дополнительно проверка регулярного выражения атрибуты на на стороне сервера: https://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.regularexpressionattribute.aspx –

ответ

2

Если вы хотите, замаскированный вход в MVC Я предложил бы использовать JQuery LIB для этого и создать метод расширения для вашего AssignedIP.

http://digitalbush.com/projects/masked-input-plugin

Что-то вроде этого:

<script type="text/javascript" src="http://jquery-joshbush.googlecode.com/files/jquery.maskedinput-1.2.1.pack.js"></script> 
    <script type="text/javascript"> 
     $(function() { 
      $("#AssignedIP").mask("999.999.999.999"); 
     }); 
    </script> 

Или, если вам просто нужно подтверждение, то вы можете использовать регулярное выражение для этого:

^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$ 

это совпадают с адресами IPv4.

[RegularExpression(@"^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$")] 
public string AssignedIP { get; set; } 

в вашем ViewModel

+0

Brillant @freshbm, спасибо! я думал только о регулярном выражении, но маска тоже помогает, спасибо! – Matchbox2093

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