Форма сообщения через ASP.NET MVC в браузере Mac - PullRequest
0 голосов
/ 06 декабря 2011

У меня есть код, который отправляет простую форму в новом окне из нашего веб-приложения, которое вызывает действие на контроллере ASP.NET MVC3. Это поведение прекрасно работает в браузерах ПК, но если пользователь находится на Mac, публикация формы заставляет браузер загрузить нулевой байтовый файл с именем запрашиваемого действия.

Действие ищет элемент из базы данных и на основе его формата возвращает FileContentResult с правильным типом содержимого и данными элемента.

Может кто-нибудь сказать мне, почему это происходит, и какие обходные пути они нашли, сталкиваясь с этим?

if (item.Format == PrintedItemFormat.PDF || item.Format == PrintedItemFormat.XDP)
{
    return new FileContentResult(Encoding.UTF8.GetBytes(item.Data), "application/vnd.adobe.xdp+xml");
}

if (item.Format == PrintedItemFormat.XFDL)
{
    return new FileContentResult(Encoding.ASCII.GetBytes(item.Data), "application/vnd.xfdl");
}

if (item.Format == PrintedItemFormat.CSV)
{
    return new FileContentResult(Encoding.UTF8.GetBytes(item.Data), "application/CSV")
    {
        FileDownloadName = item.FileName
    };
}

if (item.Format == PrintedItemFormat.HTML)
{
    return new FileContentResult(Encoding.UTF8.GetBytes(item.Data), "text/html");
}

if (item.Format == PrintedItemFormat.TXT)
{
    return new FileContentResult(Encoding.UTF8.GetBytes(item.Data), "text/plain");
}

if (item.Format == PrintedItemFormat.XFDF)
{
    return new FileContentResult(Encoding.UTF8.GetBytes(item.Data), "application/vnd.adobe.xfdf");
}

1 Ответ

0 голосов
/ 06 декабря 2011

Я думаю, что проблема в том, что браузеры Mac должны знать FileDownloadName, поскольку его нельзя определить с помощью запроса.

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