ASP.NET в MVC - ответ JSON отправляет мне файл, а не выполнение функции, чтобы закрыть диалоговое jqueryUI
Я возвращаю данные json, и я могу подтвердить, что он возвращает данные клиенту. но вместо того, чтобы обновить мой jqueryaccordion, он просит меня сохранить или открыть файл. Ниже приведен мой скрипт и контроллер. Я использовал модальный диалог jquery для редактирования сведений о сотруднике через частичное представление, и нажатие кнопки Обновить должно обновить соответствующего сотрудника в списке аккордеонов.Любая помощь будет очень признательна - спасибо
При отладке с помощью инструментов IE я заметил, что при нажатии кнопки "Обновить" на вкладке "запрос" отображается "инициатор". Я предполагаю, что это должно быть "XMLHttpRequest" вместо этого. Надеюсь, эта информация поможет. Спасибо
**общий вид**
@Html.ActionLink("Edit Employee", "EditEmployee", "Home", new { id = item.Id } , new { @class = "editLink" })
**Частичный просмотр с помощью формы редактирования сотрудника - EditEmployee.cshtml**
@using (Ajax.BeginForm("EditEmployees", "Home", new AjaxOptions { InsertionMode = InsertionMode.Replace, HttpMethod = "POST", OnSuccess = "updateSuccess" }, new { @id = "updateEmployeeForm" })) { <div class="editor-label"> @Html.LabelFor(model => model.Name) </div> <div class="editor-field"> @Html.TextAreaFor(model => model.Name) @Html.ValidationMessageFor(model => model.Name) </div> }
**Результат действия, возвращающий частичное представление, содержащее форму editemployee**
Public ActionResult EditEmployee(int id) { //DataAccess part return PartialView("EditEmployee",employeedata); }
**Контроллер, который возвращает результат Json после обновления сведений о сотруднике**
[HttpPost] Public JsonResult EditEmployee(Models.Employee employee) { //Data access part JsonResult result = new JsonResult(); result.Data = employeeData; return result; }
**Скрипт на главном экране**
<script type="text/javascript"> var linkObj; $(function () { $(".editLink").button(); $('#updateDialog').dialog({ autoOpen: false, width: 400, resizable: false, modal: true, buttons: { "Update": function () { $("#update-message").html(''); $("#updateEmployeeForm").submit(); }, "Cancel": function () { $(this).dialog("close"); } } }); $(".editLink").click(function () { //change the title of the dialog linkObj = $(this); var dialogDiv = $('#updateDialog'); var viewUrl = linkObj.attr('href'); $.get(viewUrl, function (data) { dialogDiv.html(data); var $form = $("#updateEmployeeForm"); // Unbind existing validation $form.unbind(); dialogDiv.dialog('open'); }); return false; }); }); function updateSuccess(data) { // I want to make sure that this function gets executed on Success instead of a file being sent back to me from the server $('#updateDialog').dialog('close'); $('#commonMessage').html("Update Complete"); $('#commonMessage').delay(400).slideDown(400).delay(3000).slideUp(400); alert("hello"); }
Moykn
это правильно? @использование ("Аякс".Бигинформ("EditEmployees", "дом", новый AjaxOptions не должно быть @использование ("Аякс".Бигинформ("EditEmployee", "дом", новый AjaxOptions ?
devdev13
Да. - Вот именно. Он правильно прописан в коде. Спасибо. Есть еще предложения ?