J'essaie de visualiser deux tables séparées sans relations entre elles dans la même vue. l'idée est de créer un compte et de l'ajouter à la table account et d'ajouter plusieurs lobs et de les ajouter à la table lob. j'ai donc créé deux vues partielles pour chacune. J'ai créé un ViewModel qui contient une instance du compte et une liste des lobs. Le problème est que dans la vue principale, le modèle partiel renvoie null. Je ne sais pas pourquoi. Des idées ? J'apprécie votre aide.
@model Manage_account.Models.AccountVM
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
<div>
@{Html.RenderPartial("~/Views/AccountOrOU/PartialViews/_Account.cshtml", Model);}
</div>
<div>
@{Html.RenderPartial("~/Views/AccountOrOU/PartialViews/_Lob.cshtml", Model);}
</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>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
Vue partielle :
@model Manage_account.Models.AccountOrOU
@using (Html.BeginForm())
{
<div class="form-horizontal" id="ViewData">
<h4>AccountOrOU</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
<div class="col-md-10">
@Html.HiddenFor(model => model.AccountOrOUID, new { htmlAttributes = new { @class = "form-control" } })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.AccountOrOUName, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.AccountOrOUName, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.AccountOrOUName, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.DepartmentID, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.DepartmentID, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.DepartmentID, "", new { @class = "text-danger" })
</div>
</div>
</div>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
}
Modèle :
public class AccountVM
{
public AccountOrOU AccountOrOU { get; set; }
public List<Lob> lobs { get; set; }
}
Contrôleur :
public ActionResult Create()
{
return View();
}
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(AccountVM vM)
{if (vM != null)
{
var myAccount = db.AccountOrOUs.ToList();
foreach (var acc in myAccount)
{
acc.AccountOrOUID= vM.AccountOrOU.AccountOrOUID ;
acc.AccountOrOUName=vM.AccountOrOU.AccountOrOUName ;
acc.DepartmentID=vM.AccountOrOU.DepartmentID ;
db.AccountOrOUs.Add(acc);
}
db.SaveChanges();
}
return View("Index");
}