JSON stringify不序列化吗?绑定问题

时间:2018-07-30 19:33:42

标签: c# list model bind viewmodel

在控制器WidgetConfigurationRequestVM请求对象中 返回3个属性(列表)为空

  • 管辖权
  • 标签
  • 工作区

我已将此绑定到视图中,并且确定有数据集。它们具有相同的方法类型IEnumerable,为什么在WidgetConfigurationRequestVM中没有绑定companyid和其他属性?谢谢您的帮助!

API控制器:

    [Route("api/track/v1/taxibriefing")]
    public async Task<TaxiContainerModel> Post([FromBody] WidgetConfigurationRequestVM request)
    {
        request.Jurisidctions/tags/workareas = null?
        request.companyId = exists
    }

JS:

taxiBriefingButton.click(function (e) {
    e.preventDefault();
    var widgets = taxiConfigurationContainer.serialize();
    var workAreaRefs = $(this).data("workarearefs");
    var jurisdictions = $(this).data("jurisdictions");
    var tags = $(this).data("tags");
    var preset = $(this).data("preset");

    createPdf($(this).data('companyid'), widgets, $('#notes').val(), workAreaRefs, jurisdictions, tags);
});

JS创建PDF按钮:

function createPdf(companyId, widgets, notes, workAreaRefs, jurisdictions, tags) {
var doc = new PDFDocument({
    bufferPages: true,
    size: [842, 595]
});

window.dispatchEvent(GeneratingTaxiBriefingEvent);

var xhr = new XMLHttpRequest();
xhr.open('GET', '/taxiFonts/Roboto-Light.ttf', true);
xhr.responseType = 'arraybuffer';
xhr.onload = function (e) {
    if (this.status == 200) {
        doc.registerFont('Roboto', xhr.response);
        $.ajax({
            type: 'POST',
            url: '/api/track/v1/taxibriefing',
            contentType : 'application/json',
            data: JSON.stringify({ CompanyId: companyId, Notes: notes, Configuration: widgets, Workareas: workAreaRefs, Jurisdictions: jurisdictions, Tags: tags }),
            dataType: 'json',
            success: function (result) { GeneratePDF(doc, result); }
        });
    }
};
xhr.send();
}

查看:

@model  Areas.Track.Models.TrackVM

<button id="taxi-briefing" class="btn btn-danger" data-preset="@Model.Filter.DatePreset" data-workarearefs="@Model.Filter.WorkareaRefs" data-jurisdictions="@Model.Filter.JurisdictionRefs" data-tags="@Model.Filter.TagsRefs" data-companyid="@Model.Filter.FirmRefs.First()">Create PDF</button>

Viewmodel:

public class WidgetConfigurationRequestVM
{
    public int CompanyId { get; set; }
    public string Notes { get; set; }
    public IEnumerable<WidgetConfigurationVM> Configuration { get; set; }
    public IEnumerable<int> Workareas { get; set; }
    public IEnumerable<int> Jurisdictions { get; set; }
    public IEnumerable<int> Tags { get; set; }
}

0 个答案:

没有答案