如何解决在视图中访问localdb数据
我现在正在启动一个ASP.NET核心mvc项目,但无法在特定视图中显示信息。
我有2个模型,这些模型包含它们的特殊性,并且需要在HomeController中声明的视图中访问这两个模型。这是其中一种模型:
public class Tipo_Logradouro
{
public int Id { get; set; }
public string Abreviatura { get; set; }
public string Nome_Tipo { get; set; }
}
我的意图是通过cshtml表显示“ Abreviatura”和“ Nome_Tipo”,其中所有数据均已注册。但是,当我尝试它给出实例错误时,我无法显示它。该模型的控制方法是通过脚手架进行的。
我不知道是否可以执行此操作,或者它是否非常简单,但是我正在开始,我想解决这种情况。
PS:我试图提供信息的cshtml不在其范围之内。
解决方法
您需要遍历Tipo_Logradouro对象的列表,并在循环中读取Abreviatura和Nome_Tipo属性的值。
调试时是否从数据库中获取数据?还是您正在使用内存数据库?
,我有2个包含其特异性的模型,我需要 可以在HomeController中声明的视图中访问两者。
尽管视图只能接受一种类型的模型,但是您可以有多种方法在同一视图中显示多个不同的模型数据。
第一种方式:
您可以将需要显示数据的两个模型合并为一个新模型,然后在视图中接收新模型以显示不同模型的数据。
public class Tipo_Logradouro
{
public int Id { get; set; }
public string Abreviatura { get; set; }
public string Nome_Tipo { get; set; }
}
另一种型号:
public class Person
{
public int Id { get; set; }
public string Name{ get; set; }
}
组合的新模型:
public class CombineModel
{
public List<Tipo_Logradouro> Tipo_Logradouros { get; set; }
public List<Person> Persons { get; set; }
}
控制器:
public IActionResult ShowData()
{
CombineModel combineModel = new CombineModel()
{
Persons = _context.Person.ToList(),Tipo_Logradouros = _context.Tipo_Logradouro.ToList()
};
return View(combineModel);
}
查看:
@model CombineModel
@{
ViewData["Title"] = "ShowData";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>ShowData</h1>
<table class="table table-bordered">
<tr>
<td>Id</td>
<td>Name</td>
</tr>
@foreach (var item in (IEnumerable<Person>)Model.Persons)
{
<tr>
<td>@item.Id</td>
<td>@item.name</td>
</tr>
}
</table>
<br />
<br />
<table class="table table-bordered">
<tr>
<td>Id</td>
<td>Abreviatura</td>
<td>Nome_Tipo</td>
</tr>
@foreach (var item in (IEnumerable<Tipo_Logradouro>)Model.Tipo_Logradouros)
{
<tr>
<td>@item.Id</td>
<td>@item.Abreviatura</td>
<td>@item.Nome_Tipo</td>
</tr>
}
</table>
第二种方式:
您可以使用 ViewData 将其他模型传递给视图:
控制器:
public IActionResult ShowData()
{
List<Tipo_Logradouro> data = _context.Tipo_Logradouro.ToList();
ViewData["data"] = data;
List<Person> persons= _context.Person.ToList();
return View(persons);
}
查看:
@model IEnumerable<Person>
@{
ViewData["Title"] = "ShowData";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>ShowData</h1>
<table class="table table-bordered">
<tr>
<td>Id</td>
<td>Name</td>
</tr>
@foreach (var item in Model)
{
<tr>
<td>@item.Id</td>
<td>@item.name</td>
</tr>
}
</table>
<br /><br />
<table class="table table-bordered">
<tr>
<td>Id</td>
<td>Abreviatura</td>
<td>Nome_Tipo</td>
</tr>
@foreach (var item in (IEnumerable<Tipo_Logradouro>)ViewData["data"])
{
<tr>
<td>@item.Id</td>
<td>@item.Abreviatura</td>
<td>@item.Nome_Tipo</td>
</tr>
}
</table>
这是测试结果:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。