2014-09-15 3 views
1

Могу ли я воспользоваться проверкой модели ASP.NET MVC (например, с использованием DataAnnotations) без MVC View (и, следовательно, без автоматической привязки магии модели, которую вы получаете с представлением)?Могу ли я выполнить проверку модели ASP.NET MVC без представления?

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

ответ

4

DataAnnotation - это часть System.ComponentModel.DataAnnotations.dll, которая поставляется вместе с .Net Framework.

Пожалуйста, не стесняйтесь использовать его.

Пример, который вы мне даете, похоже, что вы хотите открыть бизнес-логику через WebApi.

Короткий ответ: Да, вы можете использовать.

Однако, в первую очередь, взгляните на расходование своей архитектуры, введя WebApi, так что код между MVC и WebApi является общим.

public class Recipe 
{ 
    [Required] 
    public string Name { get; set; } 
} 


var recipe = new Recipe(); 
var context = new ValidationContext(recipe, serviceProvider: null, items: null); 
var results = new List<ValidationResult>(); 

var isValid = Validator.TryValidateObject(recipe, context, results); 

if (!isValid) 
{ 
    foreach (var validationResult in results) 
    { 
     Console.WriteLine(validationResult.ErrorMessage); 
    } 
} 

ссылка: http://odetocode.com/blogs/scott/archive/2011/06/29/manual-validation-with-data-annotations.aspx

enter image description here

+0

TryValidateModel появляется Уместно также ...? Также в отношении вашего комментария «Пример, который вы мне даете, похоже, что вы хотите разоблачить бизнес-логику через WebApi». Это было не мое намерение, по сути. Несмотря на то, что я напрямую управляю своим контроллером (нет представления), я по-прежнему не использую WebApi. С моей стороны, возможно, был слабый пример. – Emilio

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