Я не знаю, задали ли люди этот вопрос или они не видели эту проблему или что-то еще.Проверка формы MVC Asp.net Связанная
Я создаю Строчный тип вида для каждого представления Create.
Я проверяю форму на стороне сервера, производя частичный класс объектов класса LINQ.
Добавляя функции Как
public IEnumerable<RuleViolation> GetRuleViolations()
{
if (String.IsNullOrEmpty(Name))
yield return new RuleViolation("Name is Required", "Name");
if (String.IsNullOrEmpty(Date.ToString()))
yield return new RuleViolation("Date is Required", "Date");
yield break;
}
Мой контроллер действий структурирован как alt text http://www.scottgu.com/blogposts/mvcpreview5/step15.png
Проблема:
Если Имя поля Длина VARCHAR2 (10), и пользователь вводит имя превышено этот предел, тогда объект product (see image) будет иметь имя как Пустой строка.
Больше, чем другие Проблемы такие же, как и выше, например date Если пользователь не вводит дату, то и объект будет иметь дату, например, 1/1/0001.
Резюме: Следует ли использовать этот метод? Или использовать метод, например, получить все элементы с помощью FormColletion или Request.Form ...
Куда вы дадите мне лучшее предложение?
Также см Justin_etheredge's post
Если мы не используем класс LinqToSql то насчет MS Entity Framework? Я не знаю об этой проблеме на MS EF ... Позвольте мне проверить это – Vikas
Да, Microsoft Entity Framework У этой проблемы нет строки, но на дату, как вы сказали, я могу проверить ее в My funtion с именем GetRuleViolation() , Что вы говорите об этом? Прямо сейчас я собираюсь завершить свой демонстрационный проект. Так что я должен изменить свою LINQtoSQL на инфраструктуру Entity? Это будет опасно? Или я могу ввести логический уровень, как вы сказали? Если это так, вы можете уточнить его, чтобы он помог мне создать базовую основу для проектов MVC. – Vikas