#ajax #asp.net-mvc
#ajax #asp.net-mvc
Вопрос:
Некоторое время я пытаюсь найти решение, но не смог его найти… У меня есть частичное представление, которое привязано к модальному, и оно отображает данные в сетке. Что-то вроде приведенного ниже
@model abc
@Html.Grid(Model)
{
grid columns
column with edit link
}
при нажатии на ссылку редактирования из сетки через ajax я бы хотел отобразить всплывающее окно в частичном представлении, которое привязано к другой модели. Это всплывающее окно начальной загрузки также должно быть привязано к привязке модели, поскольку мне нужно выполнять проверки на стороне сервера при нажатии на отправку всплывающего окна
@model pqr
<div>
popup window with grid columns displayed in form for editing.
</div>
Любая помощь с примером кода очень помогла бы.
Ответ №1:
Вероятно, есть и другие способы сделать это, но я делал это раньше:
-
Ваша ссылка для редактирования должна иметь идентификатор в качестве идентификатора, который будет передан контроллеру в качестве параметра
-
Получить данные и передать модель частичному представлению с заполненными свойствами
$(".YourEditLinkClass").click(function () { var id = $(this).attr('id'); $.ajax({ url: "@Url.Action("GetDataForPopUpWindow", "YourController")", type: "GET", dataType: "html", data: { id: id }, success: function (data) { $("#modal_" id).html(data);//target position of modal $('#pqr_' id).modal('toggle'); } }); });
Код контроллера:
public ActionResult GetDataForPopUpWindow(int id)
{
using (YourDBContext)
{
var data = YourData;
pqr pqrModel = new pqr();
pqrModel.YourModelProperty = data.CorrespondingProperty;
return PartialView("_GridPartialView", pqrModel);
}
}
Ваш загрузочный модал должен иметь идентификатор, как id="pqr_@Model.Id"
в частичном представлении, называемый _GridPartialView. Надеюсь, это имеет смысл.