Передайте данные с одного контроллера на домашний контроллер с помощью класса модели и просмотрите выходные данные на домашней странице.
У меня есть класс RestCallcontroller. Я хочу передать данные из Restcontroller в Home Controller. Это theRestController
public class RestCallController : Controller { public string loginJsonString; Result result = new Result(); // GET: RestCall public async Task<ActionResult> RunAsync(string a, string b) { using (var handler = new HttpClientHandler { UseDefaultCredentials = true }) using (var client = new HttpClient(handler)) { var byteArray = Encoding.ASCII.GetBytes("username:password"); client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray)); client.BaseAddress = new Uri("XXX"); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = await client.GetAsync("XXX"); if (response.IsSuccessStatusCode) { //Get the response loginJsonString = await response.Content.ReadAsStringAsync(); result.loginJsonStringop = loginJsonString; //Json deserialization VehicleResponse vehicleobj = JsonConvert.DeserializeObject<VehicleResponse>(loginJsonString); List<string> modelList = new List<string>(); List<string> descriptionList = new List<string>(); foreach (Vehicle veh in vehicleobj.Vehicles) { var model = veh.Model; var Description = veh.Description; modelList.Add(model); var modellist = modelList; descriptionList.Add(Description); } } } return RedirectToAction("Index", "HomeController",new { resultop =result }); } }
Ниже идет мой домашний контролер.
public class HomeController : Controller { string a; string b; // GET: Home public ActionResult Index(Result resultop) { RestCallController restcallController = new RestCallController(); restcallController.RunAsync(a,b); resultop.loginJsonStringop = restcallController.loginJsonString; return View(resultop); } }
Это мой класс моделей.
public class Result { public string loginJsonStringop { get; set; } public string modelop { get; set; } public string descriptionop { get; set; } }
Индексированное представление.
using IFS_Integration_MVC.Models @model IFS_Integration_MVC.Models.Result @{ ViewBag.Title = "Index"; } <!DOCTYPE html> <html> <head> <title>Rest Call</title> </head> <body> <h2>Index</h2> <div><h2>@Model.loginJsonStringop</h2></div> </body> </html>
Я хочу передать значение loginJsonString, modelList,descriptionList методу index() в домашнем контроллере и просмотреть его в индексном представлении.
Что я уже пробовал:
Я создал контроллеры и класс модели, как описано выше. Но все равно не может получить ценности.
F-ES Sitecore
Не очень понятно, что вы пытаетесь сделать, но контроллеры должны использоваться только для обработки запросов, вы не создаете один контроллер из другого и не запускаете его методы. Если вы хотите передавать данные между контроллерами то в первом контроллере храните данные которые вы хотите передать в TempData
http://www.tutorialsteacher.com/mvc/tempdata-in-asp.net-mvc
затем верните RedirectToAction, чтобы перенаправить клиента на предполагаемое действие вашего предполагаемого контроллера, и в этом втором контроллере получите данные из TempData.