填充ViewData [“ content”]或ViewData [“ Header”]的内容

时间:2019-02-19 14:31:59

标签: c# asp.net .net asp.net-mvc

我遇到了一段我不理解的代码。我们正在使用foreach遍历ViewData [“ Content”],但是我看不到它是从哪里填充的。当我们在生产中遇到错误时会出现问题,但是当我尝试在本地调试时,它可以正常工作。我签入了应用程序,但未在任何地方设置ViewData [“ Content”] 我有类似的东西

foreach (var contentType in (List<AppCode.ContentType>)ViewData["Content"]){ ....}

任何人都可以遮挡任何光线吗?

我期待看到类似的东西 ViewData[“content”] ="blablaba"ViewData[“Header”]="lalalal",但在应用程序中的任何地方都看不到它。

2 个答案:

答案 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