Выполнить запрос GET от контроллера с помощью вспомогательного метода.
public ActionResult MyMethod(......)
{
string controller = "UserController";
string action = "GetData";
string query = "123";
string address = Request.Url.GetLeftPart(System.UriPartial.Authority) + Url.Action(action, controller) + "/" + query;
string userDataInString = GetRequest(address);//address in place of actionUrl
userDataInString += ".........";
return Json(userDataInString , JsonRequestBehavior.AllowGet);
}
private string GetRequest(string address)
{
WebClient client = new WebClient ();//pick your poisen...
return client.DownloadString (address);
}
Если у вас нет веской причины использовать подход RESTful ... если вы контролируете оба конца запроса, я рекомендую переместить это в BL, чтобы сэкономить на HTTP-запросах.
Джсон из Cookie
private void GetRequestCreateCookie(string address)
{
var myCookie = new HttpCookie("aCookie");
var client = new WebClient();
myCookie["jsonResponse"] = client.DownloadString(address);
myCookie.Expires = DateTime.Now.AddMinutes(1);//some amt of time
// Add the cookie.
Response.Cookies.Add(myCookie);
}
Чтение (проверка на нулевое значение в реальном приложении) ...
[HttpPost]
public ActionResult SomeMethod(/*param(s)*/)
{
HttpCookie cookie = Request.Cookies["aCookie"];
string answer = cookie["jsonResponse"];
//...
}