MVC разобрать AJAX в Javascript Excel

На основе этой статьи я создал приложение Excel TaskPane

Контроллер

using DatabaseWeb.Models;
using System.Web.Mvc;

namespace DatabaseWeb.Home
{
    public class HomeController : Controller
    {
        // GET: Home
        public ActionResult GetEmployee()
        {
            Employee john = new Employee
            {
                Id = 1,
                FirstName = "John",
                LastName = "Smith"
            };

            return Json(new { employee = john }, JsonRequestBehavior.AllowGet);
        }
    }
}

Модель

namespace DatabaseWeb.Models
{
    public class Employee
    {

        public int Id { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }

    }
}

JAVASCRIPT

$(document).ready(function () {
    $('p#getEmployee').click(function () {
        GetEmployeeUsingAjax();
    });
});

function GetEmployeeUsingAjax() {
    $.ajax({
        type: 'GET',
        url: 'Home/GetEmployee',
        success: function (emp) {
            $('#id').text(emp.employee.Id);
            $('#firstName').text(emp.employee.FirstName);
            $('#lastName').text(emp.employee.LastName);
        },
        error: function (emp) {
            //alert('error');
            return "error";
        }
    });
}

body home.html

<div id="id"></div>
<div id="firstName"></div>
<div id="lastName"></div>
<p id="getEmployee">Get Employee</p>

Когда я запускаю проект, он генерирует идентификатор, имя и фамилию на панели задач. ОТЛИЧНЫЙ! Поэтому мой следующий вопрос очень прост. Как я могу сгенерировать фамилию в Excel (home.js)

function loadSampleData() {

var values = GetEmployeeUsingAjax(lastname);

Excel.run(function (ctx) {

        var sheet = ctx.workbook.worksheets.getActiveWorksheet();

        sheet.getRange("A1").values = values;
     return ctx.sync();
        })
        .catch(errorHandler);
}

Приведенный выше код не будет работать.

Какой точный синтаксис? Следующий код показывает мои намерения, но не работает.

var values = GetEmployeeUsingAjax(lastname);

1 ответ

У вас может быть несколько проблем с вашим кодом. Во-первых, ваша функция GetEmployeeUsingAjax никогда ничего не возвращает. Реальное действие - это асинхронный вызов функции успеха. Таким образом, вы должны либо выполнить работу по установке значений Excel внутри этой функции, либо передать другую функцию, чтобы она могла быть вызвана из функции успеха.

Попробуйте, и если у вас все еще есть проблемы, обновите вопрос.

Другие вопросы по тегам