在没有视图包的情况下获取模型数据
本文关键字:情况下 获取 模型 数据 视图 | 更新日期: 2023-09-27 17:56:00
我是一名实习生,致力于为一个网站改进生活质量。没有什么必要的,但由于这实际上将被部署,我想保持整洁。
我需要从数据库中提取一个表,并将其显示在站点的共享标头中。我已经设置了数据库,模型从数据库中获取数据,以及一个测试视图,只是为了查看它是否正确显示。但是,页面控制器正在通过视图包传递模型,我被告知不要这样做。
那么,如何让我的页面打印出我的模型数据而不通过 viewbag?
您可以使用此格式执行此操作
public ActionResult Index(YourModelHere model)
{
return View(model);
}
在您看来,添加此内容
@model yournamespacehere.Models.YourModelHere
更新
为部分视图数据创建新控制器
//partial view call
public ActionResult GetHeaderPartial()
{
var model = new DataModel();
model.data1 = "Menu 1";
model.data2 = "Menu 2";
return PartialView("_HeaderPartial", model);
}
为共享标头创建分部视图。在此示例中,我将其命名为"_HeaderPartial"
@model yournamespace.Models.DataModel
<li><a href="#">@Model.data1</a></li>
<li><a href="#">@Model.data2</a></li>
在共享标头布局中,添加 @Html.Action("GetHeaderPartial","ControllerHere")
<header>
<div class="content-wrapper">
<div class="float-left">
<p class="site-title">@Html.ActionLink("your logo here", "Index", "Home")</p>
</div>
<div class="float-right">
<section id="login">
@Html.Partial("_LoginPartial")
</section>
<nav>
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
<li>@Html.ActionLink("Contact", "Contact", "Home")</li>
@Html.Action("GetHeaderPartial","Sample")
</nav>
</div>
</div>
</header>
这是一个很好的起点。如文章所述,基本上有三种方法可以将数据传递到视图:
- 视袋
- 动态对象
- 强类型对象
使用后一种方法(通常是个好主意),您只需将模型实例传递给要返回的 ActionResult(在您的情况下,这将是一个 ViewResult 实例)。
所以取而代之的是这个....
public ActionResult Index()
{
ViewBag.Foo= new Foo();
return View();
}
你这样做...
public ActionResult Index()
{
return View(new Foo());
}
确保"索引"视图中的模型具有以下行:
@model Foo
现在,您可以使用 Razor 或您正在使用的任何语法来执行视图中需要执行的操作。
设置在控制器中创建并传递给视图的视图模型。此链接将为您提供帮助!