我遇到了一段我不理解的代码。我们正在使用foreach遍历ViewData [“ Content”],但是我看不到它是从哪里填充的。当我们在生产中遇到错误时会出现问题,但是当我尝试在本地调试时,它可以正常工作。我签入了应用程序,但未在任何地方设置ViewData [“ Content”] 我有类似的东西
foreach (var contentType in (List<AppCode.ContentType>)ViewData["Content"]){ ....}
任何人都可以遮挡任何光线吗?
我期待看到类似的东西
ViewData[“content”] ="blablaba"
或ViewData[“Header”]="lalalal"
,但在应用程序中的任何地方都看不到它。
答案 0 :(得分:-1)
与described here一样, ViewData 是一个字典,其中包含要在控制器和视图之间传递的数据。
主要是在Controller
方法中设置的,如下所示:
ViewBag.Content = "some text";
或类似这样:
ViewData["Content"] = "some text";
ViewData 和 ViewBag 出于相同的目的-从控制器到视图传输数据。 ViewData 只是对象字典,可以通过字符串作为键进行访问。它们用于从 Controller-> View-> PartialView
访问相同的值两者都是ViewPage
类的一部分。
因此,根据代码的其他部分,您应该寻找用于呈现视图的 controller方法,或寻找呈现部分视图的 view 作为ViewBag和ViewData可以作为参数传递。
答案 1 :(得分:-1)
在某些“内容”或“标题”属性上可能有[ViewData]属性。可从ASP.Net Core 2.1中获得。
public class HomeController : Controller
{
[ViewData]
public string Title { get; set; }
public IActionResult About()
{
Title = "About Us";
ViewData["Message"] = "Your application description page.";
return View();
}
}
https://docs.microsoft.com/en-us/aspnet/core/mvc/views/overview?view=aspnetcore-2.2