Ошибка не может найти вид в виде Ajax

Я задаю подобный вопрос здесь

Поэтому я добавляю некоторые OnComplete Функции и Id для Ajax Forms, и есть:

Это мой взгляд:

@foreach(var item in Model) {
 <tr id="TR@(item.Id)">
    @{Html.RenderPartial("_PhoneRow", item);}
 </tr>
}

_PhoneRow:

@model PhoneModel
@using(Ajax.BeginForm("EditPhone", new { id = Model.Id }, new AjaxOptions {
UpdateTargetId = "TR" + Model.Id,
OnComplete = "OnCompleteEditPhone"
}, new { id = "EditAjaxForm" + Model.Id})) {
<td>@Html.DisplayFor(modelItem => Model.PhoneNumber)</td>
<td>@Html.DisplayFor(modelItem => Model.PhoneKind)</td>
<td><input type="submit" value="Edit" class="CallEditPhone" id="edit@(Model.Id)" /></td>
}

контроллер:

public ActionResult EditPhone(long Id) {
  //Get model by id
  return PartialView("_EditPhoneRow", model);
}

public ActionResult SavePhone(PhoneModel model) {
  //Save Phone, and Get Updatet model
  return PartialView("_PhoneRow", model);
}

_EditPhoneRow

    @model PhoneModel
@using(Ajax.BeginForm("SavePhone", new { id = Model.Id }, new AjaxOptions {
UpdateTargetId = "TR" + Model.Id,
OnComplete = "OnCompleteSavePhone"
})) {
<td>@Html.EditorFor(modelItem => Model.PhoneNumber)</td>
<td>@Html.EditorFor(modelItem => Model.PhoneKind)</td>
<td><input type="submit" value="Save" class="SaveEditPhone" id="save@(Model.Id)" /></td>
}

А также Oncomplete Сценарии:

function OnCompleteEditPhone() {

$('input.SaveEditPhone').click(function () {
    var id = $(this).attr("id").substring(4);
    $('form#SaveAjaxForm' + id).trigger('submit');
});
}

function OnCompleteSavePhone() {
$('input.CallEditPhone').click(function () {
    var id = $(this).attr("id").substring(4);
    $('form#EditAjaxForm' + id).trigger('submit');
});
}

Итак, нажмите "Правка" отлично сработало, затем нажмите "Сохранить" и "Работало хорошо", но во второй раз, когда я нажимаю кнопку "Правка", у меня появляется ошибка в действии "Post".

http://Mysite/members/editphone/7652 200 OK 582ms
http://Mysite/members/savephone/7652 200 OK 73ms
http://Mysite/members/editphone/7652 500 internal server error 136ms
<title>The view 'EditPhone' or its master was not found or no view engine supports the searched locations. The following locations were searched: ...

Так в чем же проблема? Если я удалю OnCompleteSavePhone Кнопка Изменить во второй раз не сработала, и с этой функцией у меня ошибка, которая не имеет никакого смысла, Как я могу это исправить? Я на самом деле загружаю частичные представления Ajax, и нужно, чтобы кнопки этих представлений работали корректно, поначалу все хорошо, но после результата Ajax - нет, думаю, я добавлю несколько Oncomplete функции, но есть ошибка также.

1 ответ

Решение

На ваш предыдущий вопрос сейчас дан ответ. Вы сломали разметку. Как следствие этого вам больше не нужно заботиться о каких-либо OnComplete события и делать некоторые автоматические триггеры, формы представления и прочее. Это будет обработано Ajax.BeginForm инфраструктура автоматически для вас.

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