[英]How to use a List<Tuple<>> as an action method parameter?
我想將List<Tupple<>>
發送到控制器,但效果不佳,因為我總是收到以下消息No parameterless constructor defined for this object
並且該方法的代碼未執行。
我正在使用一個類作為控制器參數的視圖模型:
public class InsurancesHospitals
{
public int hospital { get; set; }
public List<Tuple<int, string, bool>> insurances { get; set; }
}
這是控制器:
[Authorize]
public ActionResult AssociateInsurances(InsurancesHospitals viewModel)
{
foreach (var insurance in viewModel.insurances)
{
/*
Here I do some things...
*/
}
return Redirect("/Hospitals/Index");
}
這是我稱之為控制器的視圖:
<form id="formulario" role="form" method="post" action="~/Hospitals/AssociateInsurances">
<label class="control-label" for="hospital">Hospital</label>
<select class="form-control" id="hospital" name="hospital">
@foreach (var hospital in (IQueryable<HOSPITALS>)ViewData["hospitals"])
{
<option value="@hospital.ID" >@hospital.NAME</option>
}
</select>
<div class="col-xs-12">
<div class="row">
@{
var insurances = ((IQueryable<INSURANCES>)ViewData["insurances"]).ToList();
for (var index=0; index < insurances.Count(); index++)
{
<input type="hidden" value="@insurances[index].ID" class="insurances" name="insurances[@index].Item1" />
<div class="col-xs-3">
<input type="checkbox" data-id="@insurances[index].ID" class="association" name="insurances[@index].Item3" />
@insurances[index].NAME
</div>
<div class="col-xs-3">
<input type="text" data-id="@insurances[index].ID" class="form-control codes" name="insurances[@index].Item2" />
</div>
}
}
</div>
</div>
<button class="btn btn-success" type="submit">
<span>Associate</span>
</button>
</form>
就像錯誤說的那樣:元組沒有無參數構造函數 ,因此模型綁定程序無法實例化它。
您可以采用艱難的方式:創建自己的模型綁定程序,或者采用簡單的方式:只需引入一個包含適當屬性的新類。 這有一個額外的好處:實際上有用的屬性名稱,而不是ItemN
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.