вызов c# функций в cs html, когда Ajax .BeginForm завершено - PullRequest
0 голосов
/ 21 января 2020

поэтому есть Ajax .BeginForm, который вызывает PartialView и возвращает представление (которое я использую для фильтрации продуктов)

, но я хочу изменить основное представление Модель тоже

Я имею в виду, что после завершения Ajax .BeginForm я хочу сделать ViewBag в PartiaView action

и после этого когда Ajax .BeginForm завершено, затем вызовите функцию в cs html, чтобы обновить модель основного вида с этим ViewBag

как я могу сделать это

в конец это моя цель:

@functions{
public void ChangeModel(){
    Model.Prod = ViewBag.Prod //forget about the casting !
}
}

@using (Ajax.BeginForm("GetStations", "Trains", new { area = "Site" }, new AjaxOptions
{
    OnSuccess = ChangeModel(),
}, null))

1 Ответ

1 голос
/ 21 января 2020

OnSuccess - это функция обратного вызова JavaScript,

код C# будет

@using (Ajax.BeginForm("GetStations", "Trains", new { area = "Site" }, new AjaxOptions
{
    OnSuccess = 'mySuccessCallback',
}, null))

Ваш контроллер вернет что-то вроде этого

return Json(new { Prod = ViewBag.Prod, ... }, JsonRequestBehavior.AllowGet);

JavaScript будет

function mySuccessCallback(data, status, xhr) {
    var newProdValue = data.Prod; // passed as model from backend

    // ... display the new value anywhere with JS or jQuery
}
...