2016-03-27 3 views
0

Я пишу веб-приложение CRUD с помощью Nancy на .NET. При попытке выполнить некоторую проверку на стороне сервера мне сложно заблокировать форму с пустыми значениями, записанными в базе данных.Как проверить, пустые ли данные формы POST?

Вот мой контроллер/Модуль:

public dynamic NEW_POST(dynamic parameters) 
     { 
      //Binds model to form 
      var post = this.Bind<Post>(); 
      if (post.Title.Length == 0 && post.Content.Length == 0) 
      { 
       return HttpStatusCode.BadRequest; 
      } 

      else 
      { 
       _post.Create(post); 
       return Response.AsRedirect("/"); 
      } 

     } 

Я также попытался проверить, если модель == нуль.

Пустые значения все еще проходят через контроллер и попадают в базу данных. Любые советы будут оценены, спасибо

ответ

1

Вот простой способ проверить это:

if (string.IsNullOrWhiteSpace(Request.Form["name"])) 

Сообщение данные, содержащиеся в форме коллекции.

0

Так я обычно делаю это и проверяю, что данные posted являются нулевыми (как вы сказали?). Например:

public class CustomerModule : NancyModule 
{ 
    public CustomerModule() 
    { 
     this.Post["api/customers"] = args => this.AddCustomer(); 
    } 

    private Negotiator AddCustomer() 
    { 
     var customer = this.Bind<Customer>(); 

     if (customer == null) 
     { 
      return this.Negotiate.WithStatusCode(HttpStatusCode.BadRequest); 
     } 

     return this.Negotiate.WithStatusCode(HttpStatusCode.Created); 
    } 
} 

public class Customer 
{ 
    public string Forename { get; set; } 

    public string Surname { get; set; } 
} 

Это работает, когда я запускаю приложение локально. Для полного исходного кода вы можете посмотреть here.