2017-02-05 238 views
0

我有一個web api控制器GET api方法,我在其中調用外部REST服務來獲取數據。我想在asp.net頁面上顯示一段數據(來自我的數據模型類的一個屬性來保存外部Web服務數據)。 api控制器調用一個存儲庫類庫的方法,我從外部REST服務獲取數據並返回到我的web api控制器。在ASP.NET頁面中從Web Api控制器獲得價值

我打電話給我的web api contoller在ASP.NET頁面上的javascript中使用PDF Tron Web查看器控件獲取api方法。

<script src="settings.js"></script> 

我不想使用Session(雖然會議是不可用的,解決方法是可用的使用Session),因爲它會讓我的REST API的狀態。

請告訴我們在asp.net頁面中有哪些選項可以從web api控制器獲取數據。

//Settings.js code 

window.WebViewerUniversalInstance.model.set(
{  
    documentUrl: "/api/Document/?type=XOD&docno=101",  
    //serverUrl: "../html5/annotationHandler.php", //server script for handling annotations 
    annotationUser: new PDFTron.WebViewer.User("Guest", false), 
    currentPageNumber: 0, 
    pageCount: 0, 
    zoomLevel: 0, 
    fitMode: PDFTron.WebViewer.FitMode.Zoom, 
    layoutMode: PDFTron.WebViewer.LayoutMode.SinglePage, 
    toolMode: '', 
    rotation: 0, 
    webViewerLibPath: 'lib/', //URL path to the WebViewer lib folder 
    webViewerOptions: { //extra WebViewer options 
     silverlightOptions: { 
      enableAnnotations: false //disable annotations if silverlight is loaded. 
      } 
     } 
    } 
); 
+0

你能說清楚你的意思嗎?「我想在asp.net頁面顯示一段數據。」。您提到WebViewer,但它只顯示XOD或PDF文件,所以不清楚這與您的其他問題有何關係。 – Ryan

+0

@Ryan:與PDF Tron查看器一樣,我將ASP.NET web API稱爲:documentUrl:「/ api/Document /?type = XOD&docno = 101」。除了實際的XOD文檔外,這個web api調用還會獲取其他數據。我想在ASP.NET頁面上顯示從web api調用中獲取的其他數據。請讓我知道這是否澄清您的查詢。 –

+0

爲了說明,documentUrl不是WebViewer API的一部分,所以我認爲該參數就是您用來獲取額外數據的參數。目前還不清楚WebViewer與您的問題有什麼關係。如果您刪除了WebViewer部件,您可能有更好的機會讓您的asp.net問題得到解答。或者,如果問題是關於WebViewer,請刪除無關的ASP.Net部分。 – Ryan

回答

0

documentUrl選項只是一個幫助器方法,不能像您正在嘗試的那樣重載。

如果你想優化到一個單一的服務器調用,那麼你會手動執行你自己,就像你通常使用ASP.Net進行任何服務器請求一樣。

所以響應

/api/Document/?type=XOD&docno=10 

服務器就會返回某種類似下面的響應。

{ 
    xodurl: url, 
    metadata1: data1, 
    metadata2: data2 
} 

然後,您會將url參數傳遞給WebViewer documentUrl參數。