asp.net ActionResult не может видеть статические данные в контроллере - PullRequest
0 голосов
/ 12 июня 2018

У меня есть простой статический класс, подобный этому

public static class pdfDataSingle
{
    public static PdfData pdf { get; private set; }

    public static void SetData(PdfData data)
    {
        pdf = data;
    }
}

Сначала я установил класс таким образом в контроллере MVC

pdfDataSingle.SetData(pdfData);

Я подтвердил, что все данные есть..

Затем мне нужно получить байты из результата действия, поэтому сначала я вызываю

 pdf.Add(CreateCertificatePart(CertificatePart.NewStatementOfFact));

Итак, это выглядит следующим образом ..

private byte[] CreateCertificatePart(CertificatePart part)
    {
        var customSwitches = string.Format(
            "--print-media-type " +
            "--margin-top 10mm " +
            "--margin-bottom 10mm " +
            "--margin-left 10mm " +
            "--margin-right 10mm " +
            "--encoding utf-8 " +
            "--minimum-font-size 11 " +
            "--zoom 1.0 " +
            "--disable-smart-shrinking"
        );

        var pdfResult = new ActionAsPdf(part.ToString()) { CustomSwitches = customSwitches };

        var pdfBytes = pdfResult.BuildFile(ControllerContext);

        return pdfBytes;
    }

Действиевызываемый метод выглядит следующим образом ... но статические данные pdfDataSingle равны нулю!

public ActionResult NewStatementOfFact()
    {
        try
        {

            AppInsightLog.LogInfo(pdfDataSingle.pdf.Schedule.PolicyNumber, "NewStatementOfFact");
            return View("StatementOfFact", pdfDataSingle.pdf.Schedule);
        }
        catch (Exception ex)
        {
            //AppInsightLog.LogError(ex, quoteReference);
            return new HttpStatusCodeResult(400, "NewStatementOfFact");
        }
    }

Это работает нормально, когда я запускаю его локально .. результаты действия видят данные в статическом классе (объявленном внемой контроллер), но когда они публикуются в Azure, они не .. кто-нибудь имеет представление, почему это может быть?

Спасибо

1 Ответ

0 голосов
/ 12 июня 2018

Сериализация данных (PdfData) в строку json и сохранение их в базе данных.Затем вы можете прочитать его обратно в методах действия и десериализовать его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...