相关疑难解决方法(0)

ASP.NET MVC中的ViewBag如何在幕后工作?

我正在阅读一本关于ASP.NET MVC的书,我想知道以下示例是如何工作的:

示例#1

调节器

public class MyController : Controller
{
    public ActionResult Index()
    {
        ViewBag.MyProperty = 5;

        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

视图

<h1>@ViewBag.MyProperty</h1>
Run Code Online (Sandbox Code Playgroud)

现在我明白了ViewBag是一个动态的对象,所以这是如何设置的属性(虽然我不知道很多关于动态对象,从来没有与他们合作.)但如何看法得到的特定实例ViewBag从控制器,即使我们没有直接传递任何东西?

我认为它ViewBag可能是一个public static对象,但是对它的任何改变都是全局的,它不会特定于视图实例.

你能详细说明这是如何在幕后工作的吗?

例#2

调节器

public class MyController : Controller
{
    public ActionResult Index()
    {
        ViewBag.MyProperty = 5;

        return View();
    }

    public ActionResult Index2()
    {
        ViewBag.MyProperty = 6;

        return View();
    }
}
Run Code Online (Sandbox Code Playgroud)

现在让我们说Index首先调用该方法,然后调用Index2.最后,值ViewBag.MyProperty将最终为6(来自的值Index2).我觉得这不是一件好事,但与此同时我觉得我在思考桌面开发术语.也许与ASP.NET MVC一起使用无关紧要,因为Web是无状态的.是这样的吗?

c# asp.net-mvc dynamic viewbag

33
推荐指数
3
解决办法
4万
查看次数

标签 统计

asp.net-mvc ×1

c# ×1

dynamic ×1

viewbag ×1