Ich habe folgendes Ansichtsmodell:ASP.NET MVC Viewmodel Eigenschaft ist null
public class ProjectViewModel
{
public Project Project { get; set; }
public Customer Customer { get; set; }
}
Die Customer
Eigenschaft wird nur ein neues Project
an den Kunden zu verbinden, so dass ich nicht enthalten diese Eigenschaft in meinem erstellen Ansicht, die wie folgt aussieht:
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>Project</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.Project.Name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Project.Name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Project.Name, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
Wenn ich poste die Form, die folgende Methode in meinem ProjectsController
ausgelöst wird:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create([Bind(Include = "Project,Customer")] ProjectViewModel vm)
{
var project = Mapper.Map<Project>(vm);
if (ModelState.IsValid)
{
_db.Create(project);
return RedirectToAction("Index");
}
return View(vm);
}
Hier tritt das unerwartete Verhalten auf. Jetzt, wenn ich die vm
Eigenschaft untersuche, ist die Customer
Eigenschaft null
.
Die Frage Wie kann ich die Customer
Eigenschaft halten immer noch gefüllt, während sie nicht in der Ansicht verwenden?
Wenn Sie keine Kundeneigenschaftswerte aus der Benutzereingabe lesen, legen Sie dies in Ihrer HttpPost-Aktionsmethode nach Bedarf fest. Möchten Sie einen Dummy-Kunden speichern? – Shyju