从 ASP.NET 页面中的 Web Api 控制器获取值

Get value from Web Api Controller in ASP.NET page

我有一个 Web api 控制器 GET api 方法,我在其中调用外部 REST 服务来获取数据。我想在 asp.net 页面上显示一段数据(来自我的数据模型 class 的 属性 以保存外部 Web 服务数据)。 api 控制器调用存储库 class 库的方法,我从外部 REST 服务和 return 在我的网络 api 控制器中获取数据。

我在使用 PDF Tron Web 查看器控件的 ASP.NET 页面上的 javascript 中调用我的 Web api contoller get api 方法。

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

我不想使用 Session(虽然 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. 
            }
        }
    }
);

documentUrl 选项只是一个辅助方法,不能像您尝试的那样重载。

如果您想优化单个服务器调用,那么您可以自己手动执行此操作,就像您通常使用 ASP.Net.

发出任何服务器请求一样

所以回应

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

您的服务器可以 return 如下所示的某种响应。

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

然后您可以将 url 参数传递给 WebViewer documentUrl 参数。