Это именно то, что я искал после обнаружения того, что RedirectToAction()
не будет передавать сложные объекты класса.
В качестве примера я хочу вызвать метод IndexComparison
в контроллере LifeCycleEffectsResults
и передать ему сложный объект класса с именем model.
Вот неудавшийся код:
return RedirectToAction("IndexComparison", "LifeCycleEffectsResults", model);
Стоит отметить, что строки, целые числа и т. д. выжили в пути к этому методу контроллера, но общие объекты списка страдали от того, что напоминало утечки памяти C.
Как было рекомендовано выше, вот код, который я заменил на него:
var controller = DependencyResolver.Current.GetService<LifeCycleEffectsResultsController>();
var result = controller.IndexComparison(model);
return result;
Все работает как сейчас. Спасибо, что завели путь.
Ваш текущий код (первый подход) передает значение переменной e
в качестве параметра данных для вызова $.get
. Метод jQuery $.get
отправит это как значения строки запроса. Таким образом, ваш код запускает вызов, как показано ниже.
/ViewProfile/howContactTel?testValue
Предполагая, что testValue
является значением переменной e
Имя вашего параметра действия tel
, Поэтому отправьте js-объект с свойством с этим именем.
Также используйте метод jquery html
для обновления внутреннего html вашего div.
$.get("/ViewProfile/ShowContactTel", { tel: e })
.then(function (r){
$('#divTel').html(r);
});
Я бы также рекомендовал используя методы помощника Url для генерации правильных относительных URL-адресов методу действия.
var url = "@Url.Action("ShowContactTel","ViewProfile");
$.get(url, { tel: e }).then(function (r){
$('#divTel').html(r);
});