Я посмотрел большую часть доступной помощи в SO и Google, связанной с этим, но я не уверен, что я делаю неправильно.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
в PrivacyModel.RatingPoints[@i].
, но это у меня пустой список 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