MVC ViewData Modèle null après le Post-retour à l'Action du Contrôleur

J'ai un simple MVC 4 (Beta) Application et juste observé quelque chose que j'assume peuvent être traités différemment. Dans ce cas, lorsque le Produit ci-dessous d'Action est appelé un Modèle est créé et attribué à ViewData pour une utilisation dans le Vue. Tout cela fonctionne très bien, le Modèle propriété n'est pas null, et le point de Vue de l'utilisation du Modèle de la propriété des œuvres.

[HttpGet]
public ActionResult Product()
{
    return ExecuteFormRequest(View(), true, delegate
    {
        var model = Request.ParseFromQueryString<Product>();

        if (model != null)
        {
            ViewData.Model = model;
        }

        return View();
    });
}

Lorsque le Produit est mis à jour et Post ed vers le Contrôleur toutes les données a l'air bien, mais si le produit de l'échec de la validation et je retourne la Vue ActionResult (comme indiqué ci-dessous) le Vue rencontre une référence nulle exception, car la Vue Modèle propriété est maintenant null

[HttpPost]
public ActionResult Product(Product product)
{
    if (!ModelState.IsValid)
    {
        return View();
    }

    //Do other business stuff and target new or same View    

    return View();
}

C'est la ligne dans le Vue qui conduit à une référence nulle exception, parce que la Modèle Propriété est maintenant null.

@if (!string.IsNullOrEmpty(Model.MyValue)) {}

La façon dont j'ai résolu ce fut pour réinitialiser le Modèle Propriété (comme indiqué ci-dessous). Cela semble mauvais pour moi et je me demandais si j'aborde ce tout faux. Toutes les idées bienvenues?

[HttpPost]
public ActionResult Product(Product product)
{
    if (product!= null)
    {
        ViewData.Model = product;
    }

    if (!ModelState.IsValid)
    {
        return View();
    }

    //Do other business stuff and target new or same View    

    return View();
}
InformationsquelleAutor JoeGeeky | 2012-03-18