내 코드에서 양식 게시시 중첩 된 개체 값을 읽을 수 없습니다. 하나의 오브젝트에서 목록 속성을 편집 할 수mvc 면도기 중첩 된 foreach 모델 post null subobject
Wrog 방법은 :
코드 :
@using AI.Business.Models
@model Operazione
@{ ViewBag.Title = "Simulatore"; }
@using (Html.BeginForm("CreaOperazione", "Operativita", FormMethod.Post))
{
// Imposto gli Hidden per tutte le proprietà che devo recuperare al post
@Html.HiddenFor(x => x.RapportoModel.TipoRapportoId)
<table width="100%" class="display" id="Simulatore" cellspacing="0">
<thead>
<tr>
<th class="dt-head-left">Linea</th>
<th>AUM</th>
</tr>
</thead>
<tbody>
@Html.EditorFor(x => x.Movimenti)
</tbody>
</table>
<button id="btnSalva" name="btnSalva" type="submit" style="float: right;">Salva Operazione</button>
}
@{
var contatore = 0;
foreach (var item in Model.Movimenti)
{
var movimento = item;
<tr>
<td align="left">
@*Imposto gli Hidden per tutte le proprietà che devo recuperare al post*@
@Html.HiddenFor(x => movimento.Prodotto.Descrizione, "Movimenti[" + contatore + "].Prodotto.Descrizione")
@Html.DisplayFor(x => movimento.Prodotto.Descrizione, "Movimenti[" + contatore + "].Prodotto.Descrizione")
</td>
<td>@Html.EditorFor(x => movimento.Aum, "CurrencyDisabled", "Movimenti[" + contatore + "].AUM")</td>
</tr>
contatore++;
}
}
이 하나의 객체에서 목록 속성을 편집 할 수있는 올바른 방법입니다
편집기를 사용하여 assuggested :
@model AI.Business.Models.Movimento
<tr>
<td align="left">
@Html.HiddenFor(x => x.Prodotto.Descrizione)
@Html.DisplayFor(x => x.Prodotto.Descrizione)</td>
<td>@Html.EditorFor(x => x.Aum, "CurrencyDisabled")</td>
그리고 이것은 내 객체입니다
public class Movimento
{
public int Id { get; set; }
public ProdottoModel Prodotto { get; set; }
public decimal Aum { get; set; }
}
그리고 개체 제품명 : 내 Actionresult 속성 Descrizione에서
public class ProdottoModel
{
[Key]
public int ID { get; set; }
public string Descrizione { get; set; }
}
가 null :
[HttpPost]
public ActionResult CreaOperazione(Operazione operazione)
{
if (ModelState.IsValid)
{
// Do something
}
else
ImpostaErrore(ModelState);
return View("PaginaSimulatore", operazione);
}
를 열고 이미지 :
At my first access to the page the property Prodotto.Descrizione is populated
When i raise the form post event this property was sent with a null value
양식 게시에서 올바르게 AUM 속성을 읽을 수 있지만 Prodotto.Descrizione 속성은 읽을 수 없습니다. –
컬렉션의 양식 컨트롤을 생성하는 데 'foreach' 루프를 사용할 수 없습니다. [이 답변] (http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943)을 참조하십시오.) –
그리고'NullReference' 예외를 얻는다면'Prodotto'가'null'이기 때문에 –