У меня есть сценарий, где мне нужна следующая функциональность:вызова действия другого контроллера и возвращает результат для просмотра
In View I have call as:
$.ajax({
type: "POST",
async: false,
dataType: 'json',
url: "ControllerA/ActionA",
data: { var1: some_value },
success: function (data) {
if (data == true) {
form.submit();
}
else if (data == false) {
}
});
// In ControllerA
public JsonResult ActionA(string var1)
{
/*
Some manipulation and calculations
*/
_slist = RedirectToAction("ActionC", "ControllerB", new { var1 = some_value});
string = _slist.First().ToString();
return RedirectToAction("ActionB", "ControllerB", new { var1 = var2 });
}
// In ControllerB
public JsonResult ActionB(string var1)
{
/*
Some manipulation and calculations
*/
return Json(false, JsonRequestBehavior.AllowGet);
}
public SelectList ActionC(string var1)
{
/*
Some manipulation and calculations
*/
Session["STRING"] = some_value;
return new SelectList(_storeOrderTimeDictionaryList, "Value", "Key");
}
Мне нужно JsonResult в View Page, но проблемы, как:
- Как RedirectToAction возвращает redirecttorouteresult Я не могу напрямую вернуть JSonResut
- Поскольку мне нужен сеанс в ActionC, я не могу создать экземпляр контроллера и вызывать действие.
Какая архитектура на стороне сервера вы используете? Отметьте его тем, что есть, и вы с большей вероятностью привлечете людей, которые могут вам помочь. –