gpt4 book ai didi

c# - MVC 使用值列表绑定(bind)复杂对象

转载 作者:太空宇宙 更新时间:2023-11-03 23:17:58 26 4
gpt4 key购买 nike

我已经查看了 SO 和 google 中与此相关的大部分可用帮助,但我不确定我做错了什么。

我的模型有一些属性,其中一个属性是另一个复杂对象的列表。我无法绑定(bind)此列表!

请帮忙!

这是我的相关模型类:

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....
}

我的 View 如下所示:

    @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" />
}

请不要介意 value 和 id 字段,它们由我页面中某处的 jQuery 正确更新。

这让我在我的操作中得到了一个空的 RatingPoints 列表

我也尝试过在 PrivacyModel.RatingPoints[@i]. 中不使用前缀 PrivacyModel,但这让我得到了一个空列表 RatingPoints 在我的行动中

我也尝试过使用建议解决方案中的索引 here对于非顺序项目

最佳答案

你自己让它变得复杂,你可以为此使用 HiddenFor() 帮助程序:

for (var i = 0; i < Model.RatingPoints.Count; i++)
{


@Html.HiddenFor(x=> Model.RatingPoints[i].RatingItemId)
@Html.HiddenFor(x=> Model.RatingPoints[i].RatingValue,new { id= "RatingPoints"+Model.RatingPoints[i].RatingItemId})

}

这将呈现相同的 html,并且值将在发布时正确绑定(bind)到模型中。

关于c# - MVC 使用值列表绑定(bind)复杂对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36623290/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com