3
即時通訊尋找一種方法(如果有的話),以使模型綁定過程與對象列表一起使用,在後期方法上。 我可以很容易地顯示列表。但是,當涉及到用戶上傳一個「Bien」與post方法我不能讓框架正確綁定每個列表元素。你可以看到頁面部分,我嘗試使標籤和文本框被評論,因爲我不斷收到異常,所以我想即時通訊做錯了,我無法找到一種方法來上傳我的模型上的可變數量的參數。Asp mvc 4模型綁定post方法
這是型號:
public class BienModel
{
[Required]
[Display(Name = "Nombre del Bien.")]
public String Nombre { set; get; }
public List<Atributo> Atributos { set; get; }
}
public class Atributo
{
[Required]
public String nombre { set; get; }
[Required]
public String valor { set; get; }
public Atributo(){}
public Atributo(String n, String v){
this.nombre=n;
this.valor=v;
}
}
這是頁面:
@using (Html.BeginForm()) {
<fieldset>
<legend>Publicar bien form.</legend>
<ol>
<li>
@Html.LabelFor(m => m.Nombre)
@Html.TextBoxFor(m => m.Nombre)
@Html.ValidationMessageFor(m => m.Nombre)
</li>
@*@for (int i = 0; i < Model.Atributos.Count;i++)
{
@Html.Label(Model.Atributos[i].nombre)
@Html.TextBoxFor(m => m.Atributos[i].valor)
@Html.ValidationMessageFor(m => m.Atributos[i].valor)
}*@
</ol>
<input type="submit" value="Publicar!" />
</fieldset>
}
而這個控制器
public ActionResult PublicarBien()
{
//Pido a la logica los atributos
BienModel b = new BienModel();
b.Atributos = new List<Atributo>();
b.Atributos.Add(new Atributo("Atributo1", ""));
b.Atributos.Add(new Atributo("Atributo2", ""));
b.Atributos.Add(new Atributo("Atributo3", ""));
b.Atributos.Add(new Atributo("Atributo4", ""));
return View(b);
}
[HttpPost]
public ActionResult PublicarBien(BienModel b)
{
try
{
if (ModelState.IsValid)
{
//se da de alta el bien
return RedirectToAction("Index", "Home");
}
}
catch(Exception ex){
ModelState.AddModelError("",ex.Message);
}
return View(b);
}
的農佈雷屬性實際上是一個固定值,用戶只需輸入一個勇敢的財產,農佈雷從GET方法,然後將模型回裝到視圖,但我不斷收到空指針異常。 – user1777914
你的代碼在哪一行得到這些異常?它是否在POST操作中?或者,也許在之後呈現的視圖內?如果您不提供有關遇到的問題的任何詳細信息,則無法幫助您。 –
我添加了控制器代碼。 在這裏拋出異常:@ Html.Label(Model.Atributos [i] .nombre)當我按下發送按鈕。 – user1777914