Mam działanie kontrolera, które pobiera plik z obiektu typu blob, na podstawie nazwy odniesienia kontenera (tj. Pełnej nazwy ścieżki pliku w obszarze blob). Kod wygląda mniej więcej tak:Obsługa pliku FileContentResult, gdy plik nie zostanie znaleziony
public FileContentResult GetDocument(String pathName)
{
try
{
Byte[] buffer = BlobStorage.DownloadFile(pathName);
FileContentResult result = new FileContentResult(buffer, "PDF");
String[] folders = pathName.Split(new char[] { '\\' }, StringSplitOptions.RemoveEmptyEntries);
// get the last one as actual "file name" based on some convention
result.FileDownloadName = folders[folders.Length - 1];
return result;
}
catch (Exception ex)
{
// log error
}
// how to handle if file is not found?
return new FileContentResult(new byte[] { }, "PDF");
}
Klasa BlobStorage
jest moja klasa pomocnika pobrać strumień z blob.
Moje pytanie jest zawarte w komentarzu do kodu: Jak mam obsługiwać scenariusz, gdy plik/strumień nie zostanie znaleziony? Obecnie przekazuję pusty plik PDF, który moim zdaniem nie jest najlepszym sposobem na zrobienie tego.
@Stecya: nazywa się to z zobacz przez javascript. –
Jaki powinien być typ danych w wywołaniu ajax? @Alex R można również pokazać, jak wywołanie ajax jest w widoku byłoby pomocne. – michael
Na to pytanie już udzielono odpowiedzi. Czy masz również ten sam problem? Wywołanie z javascript jest po prostu 'window.location.href =" GetDocument? PathName = "+ docPath;'. To wywoła działanie kontrolera powyżej i odpowiednio zareaguje. –