我是MVC框架的新手。我的查询是我必须从数据库sql中接收数据 数据库。并以.cshtml显示 .plz帮助....
public ActionResult Index()
{
var model = (from p in am.AMS_Page_Accesses
where p.Role_id == "m"
select new {
p.Name,
p.Id,
p.Link
}).ToList();
var abc= new linkname
{
}
return View(abc);
}
模型
public class linktab
{
public string id { get; set; }
public string Name { get; set; }
public string link { get; set; }
}
public class linkname
{
public List<linktab> menu { get; set; }
}
在.cshtml中
@foreach (var a in Model)
{
<div>a.Name</div>
<div>a.Id</div>
<div>a.Link</div>
}
答案 0 :(得分:0)
你没有显示你的视图模型究竟是什么,根据你得到的错误,似乎你根本没有指定它(使用@model
指令)。
试试这个
public ActionResult Index()
{
var model = (from p in am.AMS_Page_Accesses
where p.Role_id == "m"
select new linktab
{
Id = p.Id,
Link = p.Link,
Name = p.Name
}).ToList();
var abc = new linkname
{
menu = model
}
return View(abc);
}
在您看来:
@model linkname
@foreach (var a in Model.menu)
{
<div>a.Name</div>
<div>a.Id</div>
<div>a.Link</div>
}
答案 1 :(得分:0)
你发送一个空集合改变你的行动,
我假设你的观点是强烈输入链接列表的列表
public ActionResult Index()
{
var model = (from p in am.AMS_Page_Accesses
where p.Role_id == "m"
select new linktab{
Name = p.Name,
id = p.Id,
link = p.Link
}).ToList();
return View(model);
}
如果不是这种情况,而且你的模型是类链接名称的强类型,那么你应该像这样做
public ActionResult Index()
{
var model = (from p in am.AMS_Page_Accesses
where p.Role_id == "m"
select new linktab{
Name = p.Name,
id = p.Id,
link = p.Link
}).ToList();
linkname abc= new linkname
{
menu = model
}
return View(abc);
}
您可以在视图中更改此类代码
@foreach (var a in Model.menu)
{
<div>a.Name</div>
<div>a.Id</div>
<div>a.Link</div>
}