我在我的CSHTML中創建了一個表,我想將==數組的nr項傳回給我的控制器,但這似乎不起作用。任何想法什麼是錯的,或者爲什麼我在我的控制器中得到空引用?我怎樣才能將一個表/數組的多個值傳遞給我的控制器
CSHTML
@using (Html.BeginForm("OrderConfirm", "Beurs", new { vm = Model.Aantal }, method: FormMethod.Post))
{
<table class="table table-striped table-condensed table-bordered">
<tr>
<th>
Naam
</th>
<th>
Prijs
</th>
<th>
Minimum prijs
</th>
<th>
Factor
</th>
<th> Actie</th>
<!--
<th>Edit</th>-->
</tr>
@foreach (var item in Model.ItemLijstVm)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Naam)
</td>
<td>
€ @Html.DisplayFor(modelItem => item.Prijs)
</td>
<td>
€ @Html.DisplayFor(modelItem => item.MinimumPrijs)
</td>
<td>
@Html.DisplayFor(modelItem => item.Factor)
</td>
<td>
@Html.TextBoxFor(m => m.Aantal[item.Id - 1], new {type = "number" })
</td>
</tr>
}
</table>
<input type="submit" value=" Bevestig bestelling " width="120" />
}
視圖模型
public class BeursLijstViewModel
{
public IEnumerable<BeursItemViewModel> ItemLijstVm{get; set;}
public string Naam { get; set; }
public double Crash { get; set; }
//References naar animated gif
public bool Event { get; set; }
public string GifPath { get; set; }
public int[] Aantal { get; set; }
public int VerhoogAllePrijzen { get; set; }
public double Totaal { get; set; }
public SelectListItem Categorie { get; set; }
public BeursLijstViewModel(Beurs beurs)
{
ItemLijstVm= beurs.Items.Select(g => new BeursItemViewModel(g));
Naam = beurs.Naam;
Aantal = new int[beurs.Items.Count()];
Totaal = beurs.Totaal;
}
}
控制器
[HttpPost]
public ActionResult OrderConfirm(int[] vm) //VM is null but should be array
{
//Some more code
}
我上我的參考來自我的模型的帖子是空的,但如果我這樣在我的foreach循環中聲明它,它就可以工作。我真的沒有什麼線索出錯:
@using (Html.BeginForm("Add", "Beurs", new { id = item.Id, aantal = Model.Aantal }, method: FormMethod.Post))
{
@Html.TextBoxFor(m => m.Aantal[item.Id - 1], new { type = "number" })
<input type="submit" value=" + " width="120"/>
}
一個簡單的方法是從一個對象中取出所有必要的數據並從jquery/angularjs調用控制器的action方法 –
當你做'Html.BeginForm(「OrderConfirm」,「Beurs」,new {vm = Model.Aantal} ,'你是說你正在傳遞'vm'作爲查詢字符串參數,'Model.Aantal'屬性是否被編碼?如果你不打算通過URL來傳遞它,那麼你需要回顧一下如何正確傳遞通過形式體收集和瀏覽器的網絡監視器是在調試這些類型的問題很大的幫助 – Jasen
@RakeshBurbure:我有點缺乏jquery/angular的知識 –