MVC3 - Inserir usando ViewModel - Referência de objeto não definida para uma instância de um objeto

Tenho dois modelos, vistos abaixo, e estou tentando inserir um de cada um no banco de dados de uma visualização. Eu criei um modelo de vista na tentativa de fazer iss

public class Blog
{
    public int BlogID { get; set; }
    public string Title { get; set; }
    public DateTime CreatedOn { get; set; }

    public virtual User User { get; set; }
    public virtual ICollection<BlogPost> Posts { get; set; }     
}

public class BlogPost
{
    public int PostID { get; set; }
    public string Body { get; set; }
    public DateTime CreatedOn { get; set; }

    public int UserID { get; set; }
    public virtual User User { get; set; }
}

public class BlogViewModel
{
    public Blog Blog { get; set; }
    public BlogPost BlogPost { get; set; }
}

Usando o modelo de visualização que estou postando no controlador de criação:

[HttpPost]
    public ActionResult Create(BlogViewModel blog)
    {
        if (ModelState.IsValid)
        {
            User user = unit.UserRepository.GetUser();
            blog.Blog.User = user;
            blog.Blog.CreatedOn = DateTime.Now;

            unit.BlogRepository.Insert(blog.Blog);
            unit.BlogPostRepository.Insert(blog.BlogPost);
            unit.Save();

            return RedirectToAction("Index");  
        }

        return View(blog);
    }

Isto continua lançando o erro

Referência de objeto não definida para uma instância de um objeto

na linhablog.Blog.User = user.

Any pensamentos sobre o que estou fazendo de errado?

EDITA Verifiquei os dados do POST e estava tudo lá e correto, mas estava postando tudo comoBlog.Title = eBlogPost.Body = para que o viewmodel no controlador não estivesse recebendo nada. Se eu alterar o comando actionresult para:

public ActionResult Create(Blog blog, BlogPost post)

Então tudo funciona. Então, por que os dados não são enviados no formato viewmodel? Estou usando a interação explícita do modelo de exibição entre suas visualizações e o controller

@model Test.Models.BlogViewModel
@using (Html.BeginForm())
{
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Blog</legend>
        <div class="editor-label">
            @Html.LabelFor(model => model.Blog.Title)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Blog.Title)
            @Html.ValidationMessageFor(model => model.Blog.Title)
        </div>
        <div class="editor-label">
            @Html.LabelFor(model => model.BlogPost.Body)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.BlogPost.Body)
            @Html.ValidationMessageFor(model => model.BlogPost.Body)
        </div>
        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}
<div>
    @Html.ActionLink("Back to List", "Index")
</div>