Knockout: наблюдаемый с filedata всегда неопределен - PullRequest
0 голосов
/ 20 апреля 2020

и спасибо за чтение моего поста ..

Сначала я должен сказать, что я погуглил и попробовал несколько подходов, но безуспешно .. Поэтому я должен попытать счастья здесь ..

Довольно просто: управление загрузкой файлов -> Наблюдаемый -> JS объект для отправки в API.

Надеюсь, что кто-то может просветить меня об этом .. Я вроде застрял: (

Управление вводом

 <input class="form-control" type="file" data-bind="file: {data: fileInput}" />

Код выбивания

 var MenuWizardModel = function() {
    var self = this;
    self.fileInput = ko.observable();

    self.SaveMenu = function () {
        console.log(ko.utils.unwrapObservable(self.fileInput()));
        var newMenuViewModel = {
            name: ko.utils.unwrapObservable(self.regName()),
            image: ko.utils.unwrapObservable(self.fileInput())
        }
        console.table(newMenuViewModel);
        // PS! newMenuViewModel.image is UNDEFINED here..

        var uri = '/api/Menu';

        $.ajax({
            url: uri,
            type: 'POST',
            data: newMenuViewModel,
            dataType: 'json',
            success: function (data) {
                console.log("Success! => " + data);
                //window.location.href = "Menus.aspx";
            },
            error: function (x, y, z) {
                console.log("x = " + x + ", y = " + y + ", z = " + z);
            }
        });
    }

WEB API - Backend

[Route("api/Menu")]
    public string Post([FromBody]newMenuViewModel submitData)
    {
        // servicelayer handling submitData.image as this : 
         string base64String = Regex.Replace(submitData.image, @"^.+?(;base64),", string.Empty);
         byte[] imageBytes = System.Convert.FromBase64String(base64String);
...