Этот текущий проект я пытаюсь получить регистрационную форму и передать ее с помощью проверки. Я довольно новичок в C# и ASP.NET MVC4. Я пытаюсь помешать добавлению пользователя в коллекцию входящих сообщений, является недопустимым. Вот мой код контроллера, за которым следует мой класс User с правилами с использованием System.ComponentModel.DataAnnotationsПроверка на стороне сервера ASP.NET MVC4
Если данные недействительны, я хочу бросить пользовательскую ошибку (я еще не начал ее реализовывать).
Контроллер:
[HttpPost]
public ActionResult Confirm(FormCollection form)
{
string firstName = form["textFirstName"];
string lastName = form["textLastName"];
string email1 = form["textEmail"];
string password1 = form["passwordPW1"];
User newUser = new User { fName = firstName, lName = lastName, email = email1, password = password1 };
if (ModelState.IsValid)
{
_users.Add(newUser);
}
return RedirectToAction("Login", "Countdown");
}
Модель:
public class User
{
[Required]
[StringLength(50, MinimumLength = 1)]
public String fName { get; set; }
[StringLength(50)]
public String lName { get; set; }
[Required]
[RegularExpression(@"^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$")]
public String email { get; set; }
[Required]
[StringLength(50, MinimumLength = 4)]
public String password { get; set; }
}
В чем проблема? – theLaw
Когда я передаю ему недопустимый ввод, он все равно добавит пользователя в коллекцию. –
Кажется, что вы вручную делаете то, что будет автоматически связываться с моделью. Измените свою подпись метода на «Подтвердить (данные пользователя)» и убедитесь, что имена полей в HTML соответствуют именам свойств (которые вы можете использовать с '@ Html.TextBoxFor() и т. Д.). Тогда ваши атрибуты проверки будут работать. – GSerg