我是ASP.NET Core的新手,所以我仍然试图理解它。
我试图从后面的代码中访问一个对象。可能吗?我一直在努力寻找几个小时,我还没有理解它。我会留下一些我试过的东西,这显然是行不通的。如果我能对此有所了解,我会非常感激。
在经典ASP.NET中,我总是从代码隐藏到客户端的id方法。但现在我被要求尝试不同的方法。在这种情况下,循环。我怎样才能做到这一点?我也一直在阅读微软文档,但我仍然无法理解这一点。我很感激一些帮助。
这是我尝试的一个spinnet:
// 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>
}
提前谢谢。
答案 0 :(得分: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 Core可以将所有这些与精确参数一起使用 您可以使用公共虚拟ViewResult视图(对象模型)传递模型对象;
您需要像这样传递模型对象
return View(GetInfo);
实际访问您的参数对象
@model HostBookingEngine_HHS.Models.GetInfo;
还有几种传递数据的方法
与ViewBag一样,ViewData也可以获取每个请求中的值。
答案 1 :(得分:1)
要让Offers
可用于视图,您必须将模型作为View()
方法的参数传递给视图。因此,在您的情况下,您必须使您的行动看起来像:
public IActionResult Offers()
{
GetInfo = new GetInfo();
GetInfo.GetOffers();
return View(GetInfo);
}