0
votes

I'm in a bit of a rut with MVC3 partial views. What I'm trying to do is have a partial view within one of my pages, and have that data from the partial view stored in the model that gets passed back into the main view. Though, what's happening right now is that after submitting the data, the model returned back to the controller has the partial view model set as null.

Model

public class MyModel {
    ...(other variables)...

    [Required]
    [NotMapped]
    public virtual MyPartialView myPartial { get; set; }
}

View

@model MvcPartialViewExample.Models.MyModel

@{
    ViewBag.Title = "Create";
}

@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>

    ...(other data)...

    @{ 
        Html.RenderPartial("_MyPartialView", Model.MyPartialView, new ViewDataDictionary());
    }
    <p>
        <input type="submit" value="Create" />
    </p>
</fieldset>
}

<div>
      @Html.ActionLink("Back to List", "Index")
 </div>

Controller

public class MyModelController : Controller
{
    private MyModelContext db = new MyModelContext();

    //
    // GET: /PartialViewTesting/Create

    public ActionResult Create()
    {
        return View(new MyModel());
    } 
1

1 Answers

2
votes

If you want to pass the Model.MyPartialView object back to the controller, then you need to add another Action method to the controller. Should look something like this:

[HttpPost]
public ActionResult Create(MyPartialView model)
{
    // handle postback here
}