Изменение свойств ViewModel в действии POST

У меня есть это действие POST:

[HttpPost]
public ActionResult GetReport(GetReportModel model)
{
    if (!ModelState.IsValid)
    {
        return View(model);
    }

    return View("GetReport", new GetReportModel()
       { 
          Identifier = "test", 
          Permission = true 
       });
}

Когда я отправляю свою форму, и это действие выполняется, в результирующем представлении нет никаких изменений. Я имею в виду,TextBox заIdentifier не имеет строкового значения "test", которое я установил в действии. Но если я уберуModelState, представление покажет новое значение:

[HttpPost]
public ActionResult GetReport(GetReportModel model)
{
    if (!ModelState.IsValid)
    {
        return View();
    }

    ModelState.Remove("Identifier");
    ModelState.Remove("Permission");

    return View("GetReport", new GetReportModel() 
       {
          Identifier = "test", 
          Permission = true 
       });
}

Я не понимаю, почему это происходит? И почему каждый возвращает свою модель в представление, если оно имеет недопустимое состояние модели? Например, шаблон проекта по умолчанию от Microsoft имеет такой код:

public ActionResult Login(LoginModel model, string returnUrl)
{
    if (ModelState.IsValid)
    {
        return RedirectToLocal(returnUrl);
    }
    // Why do they pass the model object to the view
    // if it will be there anyway from post data?
    return View(model);
}

Ответы на вопрос(1)

Ваш ответ на вопрос