首页 > 解决方案 > 模型列表中的字符串未绑定

问题描述

我在模型中有以下属性:

public class QuoteRequestViewModel
{
    public long LeadId { get; set; }

    public AgentQuoteInfoModel GeneralInfo { get; set; }

    public List<TransportQuoteModel> ListTransport { get; set; }
}

TransportQuoteModel 如下:

public class TransportQuoteModel
{
    public string InclusionsId { get; set; }
    public string ExclusionsId { get; set; }
}

我有一个 jquery 脚本:

$('.inclusionExclusionMainDiv').each(function (i, obj) {
    selectedInclusions = [6-0,8-0];
    $("#ListTransport_"+i+"__Inclusions").val(selectedInclusions);
})

在通过 javascript 提交表单之前,我正在运行上面的 jquery 代码。

cshtml中渲染的InclusionsId和ExclusionsId如下:

<input class="selectedInclusion0" id="ListTransport_0__Inclusions"    name="ListTransport[0].Inclusions" type="hidden" value="">
<input class="selectedExclusion0" id="ListTransport_0__Exclusions" name="ListTransport[0].Exclusions" type="hidden" value="">

标签: c#asp.net-mvc

解决方案


您为输入呈现的 html 格式正确,但它引用的属性名称不存在。

即:您呈现的 html 应如下所示:

<input class="selectedInclusion0" id="ListTransport_0__InclusionsId" name="ListTransport[0].InclusionsId" type="hidden" value="">
<input class="selectedExclusion0" id="ListTransport_0__ExclusionsId" name="ListTransport[0].ExclusionsId" type="hidden" value="">

代替:

<input class="selectedInclusion0" id="ListTransport_0__Inclusions" name="ListTransport[0].Inclusions" type="hidden" value="">
<input class="selectedExclusion0" id="ListTransport_0__Exclusions" name="ListTransport[0].Exclusions" type="hidden" value="">

那么你需要适当地改变你的脚本:

$("#ListTransport_"+i+"__InclusionsId").val(selectedInclusions);

推荐阅读