2017-11-20 3 views
0

저는 ASP.NET 코어를 처음 접했으므로 아직 이해하려고합니다.ASP.NET 코어 - 코드 뒤에서 면도기로 찍는 객체

코드에서 객체에 액세스하려고했습니다. 가능한가? 나는 몇 시간 동안 노력하고 있었고 아직 이해하지 못했다. 나는 벨로우즈를 시도한 것을 떠날 것이고 분명히 작동하지 않을 것이다. 내가 이것에 대해 약간의 통찰력을 얻을 수 있다면 나는 그것을 매우 고맙게 생각할 것이다.

고전적인 ASP.NET에서 저는 항상 코드에서 클라이언트 측으로 이드 접근법을 사용합니다. 하지만 지금은 다른 접근 방식을 시도하도록 요청 받았습니다. 이 경우, 루프. 어떻게해야합니까? 나는 또한 마이크로 소프트 문서를 읽고 있었지만 나는 아직도 이것을 이해할 수 없다. 나는 약간의 도움에 감사드립니다.

// The controller 
public class HomeController : Controller 
    { 
     public GetInfo GetInfo { get; set; } 
     public IActionResult Offers() 
     { 

      GetInfo = new GetInfo(); 

      GetInfo.GetOffers(); 

      return View(); 
     } 
    } 


// The GetInfo class which gets data from a JSON file 
public class GetInfo 
    { 
     public Offer.RootObject Offers { get; set; } 

     public void GetOffers() 
     { 
      var client = new RestClient("whatever.com"); 
      // client.Authenticator = new HttpBasicAuthenticator(username, password); 

      var request = new RestRequest("Home/GetOffersJson", Method.GET); 
      IRestResponse response = client.Execute(request); 
      var content = response.Content; 

      var obj = JsonConvert.DeserializeObject<Offer.RootObject>(content); 

      Offers = new Offer.RootObject 
      { 
       total = obj.total, 
       data = obj.data 
      }; 


     } 
    } 

// The View file, where I'm trying to access the object from c#, which supposedly is 'loaded' 
@model HostBookingEngine_HHS.Models.GetInfo; 
@{ 
    ViewData["Title"] = "Offers"; 


} 

    @foreach (var item in Model.Offers.data) 
    { 
     <span asp-validation-for="@item.TextTitle"></span> 

    } 

감사합니다 사전에 :

는 여기에 내가 뭘하려하는 spinnet입니다.

+1

보기로 모델을 전달해야합니다. return View (GetInfo); –

+0

감사합니다. 나는 그 대답에 대해 제안 된 바와 같이 지금 당장 작동해야한다. 그리고 그 것이었다. 그래도 고마워! :) – taiko

답변

1

보기에서 Offers을 사용할 수 있으려면 모델을 View() 메소드에 대한 인수로보기에 전달해야합니다. 따라서 귀하의 경우에 당신처럼 행동 보이게해야한다 :이은

public IActionResult Offers() 
{ 
    GetInfo = new GetInfo(); 
    GetInfo.GetOffers(); 
    return View(GetInfo); 
} 
+0

그게 다야! 이제 이해가된다. 클라이언트 측에서 모델을 선언했지만 액세스하려면이 모델을 전달해야했습니다. 오, 너무 혼란 스러울 수 있습니다. 감사! :) – taiko

2

asp.net 코어보기로드를 통해 네 가지가 있습니다

public virtual ViewResult View(); 
public virtual ViewResult View(string viewName, object model); 
public virtual ViewResult View(object model); 
public virtual ViewResult View(string viewName); 

ASP.NET 코어 정확한 매개 변수와 함께이 모든 것을 사용할 수 있습니다 Public Virtual ViewResult View (개체 모델)를 사용하여 모델 개체를 전달할 수 있습니다.

당신은 통과해야 실제로

@model HostBookingEngine_HHS.Models.GetInfo; 

는 또한

처럼 ViewBag을 볼 수있는 데이터 전달의 여러 가지 방법이 있습니다 귀하의 파라미터 객체에 접근이

return View(GetInfo); 

같은 모델 객체 , 각 요청의 값을 가져 오는 ViewData.