1
我已经查看了大部分可用于SO和谷歌相关的帮助,但我不确定我在做什么错误。MVC绑定具有值列表的复杂对象
我有一些属性的模型,其中一个属性是另一个复杂对象的列表。我无法绑定这个列表!
请大家帮忙!
这里是我的模型类相关:
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:// stackoverflow.com/questions/36623290/mvc-binding-complex-objects-with-list-of-values/#answer-36623484)回答如下 – simsim