Должен ли он использоваться всякий раз, когда вводится метод действия?
Это именно то, когда вы используете модель представления, предоставляемую в качестве аргумента действия, и с этой моделью представления связана некоторая проверка (например, аннотации данных). Вот обычный шаблон:
public class MyViewModel
{
[Required]
public string Name { get; set; }
}
и затем:
[HttpPost]
public ActionResult Foo(MyViewModel model)
{
if (!ModelState.IsValid)
{
// the model is not valid => we redisplay the view and show the
// corresponding error messages so that the user can fix them:
return View(model);
}
// At this stage we know that the model passed validation
// => we may process it and redirect
// TODO: map the view model back to a domain model and pass this domain model
// to the service layer for processing
return RedirectToAction("Success");
}