Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从控制器获取要查看的ViewBag数据_C#_Asp.net_Asp.net Mvc_Asp.net Mvc 4_Razor - Fatal编程技术网

C# 从控制器获取要查看的ViewBag数据

C# 从控制器获取要查看的ViewBag数据,c#,asp.net,asp.net-mvc,asp.net-mvc-4,razor,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Razor,我仍在学习MVC,我不知道这是否可行,但我想将其他视图ViewBag数据从控制器显示到另一个视图 例如: 如何将ViewBag.Message显示到Index.cshtml视图。如果您只想使用相同的字符串发送到两个视图,可以执行以下操作: public class HomeController : Controller { const string SomeMessage = "Your application description page."; public Action

我仍在学习MVC,我不知道这是否可行,但我想将其他视图ViewBag数据从控制器显示到另一个视图

例如:


如何将
ViewBag.Message
显示到
Index.cshtml
视图。

如果您只想使用相同的字符串发送到两个视图,可以执行以下操作:

public class HomeController : Controller
{
    const string SomeMessage = "Your application description page.";
    public ActionResult Index()
    {
        ViewBag.Message = SomeMessage;
        return View();
    }
    public ActionResult About()
    {
        ViewBag.Message = SomeMessage;
        return View();
    }
}
如果要将字符串从“关于”页面传递到“索引”页面,可以通过允许“索引”页面接受参数来实现,您可以在“关于”页面的索引链接上的查询字符串中传递该参数:

家庭控制器

public class HomeController : Controller
{
    public ActionResult Index(string message)
    {
        ViewBag.Message = message;
        return View();
    }
    public ActionResult About()
    {
        ViewBag.Message = "Your application description page.";
        return View();
    }
}
关于.cshtml

@Html.ActionLink("Link to index", "Index", new {message = ViewBag.Message})
Index.cshtml

@Html.DisplayFor(ViewBag.Message)
然而,在MVC概念中,在视图之间共享变量的想法并没有真正意义。当你转到一个URL时,你调用了一个控制器。此控制器准备一些数据(可能以模型的形式回拉数据),并将其传递给视图。然后,视图将这些数据呈现到返回给用户的页面上


您可能希望查看此网站以了解更多有关MVC的信息,并更好地了解这些概念:

此消息不太可能用于共享。您的真实场景是什么?为什么需要从一个视图传递到另一个视图?学习和测试…两个视图不应该直接相互对话。你想要实现什么;知道我们可以通过为你指明正确的方向来帮助你学习;您正在尝试的内容表明您当前正朝着错误的方向前进。如果它只是需要在不同视图中显示的同一文本,您可以将其添加到_Layout.cshtml视图中。没有理由在代码中将其分配给ViewBag对象。正如上面提到的@David L,将数据从一个视图传递到另一个视图是我想要的吗?所以你的评论可以作为答案而不是这个。不用担心。仅供参考:我在我的答案中添加了一些内容,希望它能在某种程度上向您展示一种实现目标的方法。祝你好运