我还在学习MVC并且我不知道它是否可能,但是我希望将其他视图ViewBag数据从控制器显示到另一个视图。
例如:
如何向ViewBag.Message
视图显示Index.cshtml
。
答案 0 :(得分:3)
如果您只想使用相同的字符串发送到两个视图,您可以这样做:
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();
}
}
About.cshtml
@Html.ActionLink("Link to index", "Index", new {message = ViewBag.Message})
Index.cshtml
@Html.DisplayFor(ViewBag.Message)
然而,在MVC概念中,在视图之间共享变量的想法并不合适。当您转到URL时,您将调用控制器。该控制器准备一些数据(可能以模型/模型的形式拉回数据),并将其传递给视图。然后,视图将此数据呈现到返回给用户的页面上。
您可能希望查看此网站以了解有关MVC的更多信息,并更好地了解这些概念:http://www.asp.net/mvc/tutorials