私はSOとgoogleの利用可能なヘルプのほとんどを見てきましたが、何が間違っているのか分かりません。MVC値のリストを持つ複雑なオブジェクトをバインドする
私はモデルにいくつかのプロパティがあり、プロパティの1つは別の複雑なオブジェクトのリストです。私はこのリストにバインドすることができません!
お手数ですが、ここで
は私のモデルクラスに関連する次のとおりです。
public class PrivacyModel
{
public int RatingId { get; set; }
public List<RatingPoint> RatingPoints { get; set; }
}
public class RatingPoint
{
public int RatingItemId { get; set; }
public string RatingValue { get; set; }
}
ここに私のコードです:
[HttpPost]
public ActionResult Index(PrivacyModel model)
{
.... my business logic....
}
私の見解は次のようになります。
@using (Html.BeginForm("Index", "Privacy"))
{
<input type="hidden" name="RatingId" value="@Model.RatingId" />
for (var i = 0; i < Model.RatingPoints.Count; i++)
{
var ratingPoint = Model.RatingPoints[i];
<input type="hidden" name="PrivacyModel.RatingPoints[@i].RatingItemId" value="@ratingPoint.RatingItemId" />
<input type="hidden" name="PrivacyModel.RatingPoints[@i].RatingValue" @("id=RatingPoints" + ratingPoint.RatingItemId) value="@ratingPoint.RatingValue" />
}
<input class="btn" type="submit" value="Submit" />
}
値とIDのフィールドは気にしないでください。jQueryのページのどこかで正しく更新されています。
これは私に私の行動
でRatingPoints
のヌルリストを持って、私はPrivacyModel.RatingPoints[@i].
に接頭辞PrivacyModel
なくても試してみましたが、これは私に私のアクション
でRatingPoints
の空のリストを持って、私も試してみました非連続の項目について提案された解決策hereのよう
厳密に型指定されたHtmlHelperメソッドを使用して、HTMLを生成してください。 - '@ Html.HiddenFor(m => m.RatingPoints [i] .RatingItemId)' - あなたのもので生成する正しい名前属性を検査するようになりました:) –
[Ehsans](http://下のanswer answer = 36623290/mvc-binding-complex-objects-with-list-of-values/#answer-36623484) – simsim