Получить значение от контроллера Web Api на странице ASP.NET

У меня есть метод GET api контроллера веб-API, в котором я вызываю внешнюю службу REST для извлечения данных. Я хочу показать часть данных (свойство из моего класса модели данных для хранения данных внешней веб-службы) на странице asp.net. Контроллер API вызывает метод библиотеки классов репозитория, где я извлекаю данные из внешней службы REST и возвращаю их в свой контроллер веб-API.

Я вызываю мой контроллер веб-API, чтобы получить метод API в javascript на странице ASP.NET, где я использую элемент управления веб-просмотра PDF Tron.

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

Я не хочу использовать сеанс (хотя сеанс недоступен, доступны обходные пути для использования сеанса), так как это сделает мой REST API с сохранением состояния.

Пожалуйста, сообщите, какие параметры доступны для извлечения данных из контроллера веб-API на странице asp.net.

//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. 
            }
        }
    }
);

person Sudipta Chaudhari    schedule 05.02.2017    source источник
comment
Не могли бы вы уточнить, что именно вы имеете в виду, говоря, что я хочу показать часть данных на странице asp.net. Вы упоминаете WebViewer, но он отображает только файлы XOD или PDF, поэтому неясно, как это относится к остальной части вашего вопроса.   -  person Ryan    schedule 06.02.2017
comment
@Ryan: Как и в средстве просмотра PDF Tron, я вызываю веб-API ASP.NET как: documentUrl: /api/Document/?type=XOD&docno=101. Этот вызов веб-API также извлекает другие данные, помимо фактического документа XOD. Я хочу отобразить другие данные, полученные из вызова веб-API, на странице ASP.NET. Пожалуйста, дайте мне знать, если это прояснит ваш запрос.   -  person Sudipta Chaudhari    schedule 07.02.2017
comment
Чтобы уточнить, documentUrl не является частью API WebViewer, поэтому я полагаю, что этот параметр — это то, что вы используете для получения дополнительных данных. До сих пор неясно, какое отношение WebViewer имеет к вашему вопросу. У вас может быть больше шансов получить ответ на вопрос asp.net, если вы удалите части WebViewer. Или, если вопрос касается WebViewer, удалите несвязанные части ASP.Net.   -  person Ryan    schedule 08.02.2017
comment
documentUrl: /api/Document/?type=XOD&docno=101 — это часть элемента управления веб-просмотра, с помощью которой элемент управления веб-просмотра извлекает документ. Тот же веб-API, который вызывается в documentUrl элемента управления веб-просмотра, извлекает документ и другие связанные данные для документа. Мой вопрос заключается в том, как получить данные, которые извлекаются веб-API, вызываемым в элементе управления просмотра. Однако я удалил тег «pdftron» из своего вопроса.   -  person Sudipta Chaudhari    schedule 08.02.2017
comment
Похоже, вы используете старую версию WebViewer (1.8.2), и я бы рекомендовал обновить ее до последней версии по адресу pdftron.com/webviewer/download.html. Несмотря на это, похоже, что вы пытаетесь запросить дополнительные данные помимо XOD в том же запросе. Вероятно, было бы проще сделать отдельный запрос дополнительных данных, чтобы XOD можно было просто передать непосредственно в WebViewer. То есть вы перегружаете параметр documentUrl и вместо этого должны сделать свой пользовательский запрос другим способом.   -  person Ryan    schedule 08.02.2017
comment
@Ryan: я уже использую последнюю версию PDFTron Web Viewer v2.2.2, которую я скачал с веб-сайта PDFTron. Я не хочу делать дублирующие вызовы и несколько раз обращаться к базе данных, чтобы получить результаты один раз для получения документа, а затем еще раз для получения атрибутов документа. Однако, если набор результатов от вызова веб-API в PDFTron «documentUrl» не может служить этому, существует ли какой-либо другой возможный способ выполнить вызов веб-API в файле settings.js, а затем привязать документ к веб-просмотрщику PDFTron. Я не загружаю документ физически, используя массив байтов из webapi для получения документа.   -  person Sudipta Chaudhari    schedule 09.02.2017
comment
@Ryan: Есть какие-нибудь обновления по этому поводу?   -  person Sudipta Chaudhari    schedule 10.02.2017
comment
@Ryan: я использовал пример кода PDFTron, как описано здесь: группы. google.com/forum/#!topic/pdfnet-webviewer/VKVnTmu90II   -  person Sudipta Chaudhari    schedule 10.02.2017


Ответы (1)


Параметр documentUrl — это просто вспомогательный метод, и его нельзя перегружать, как вы пытаетесь сделать.

Если вы хотите оптимизировать для одного вызова сервера, вы должны сделать это самостоятельно, так же, как вы обычно делаете любой запрос к серверу с помощью ASP.Net.

Итак, в ответ на

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

ваш сервер может вернуть какой-то ответ, как показано ниже.

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

Затем вы должны передать параметр url параметру documentUrl WebViewer.

person Ryan    schedule 10.02.2017