Aqi*_*ban 0 c# linq asp.net-mvc controller model
我已经使用实体数据模型向导为 SQL 服务器中的表创建了一个实体框架,但是我需要在 MVC 的 razor 视图中使用两个以上的模型,目前我有一个现有的 linq 查询:
控制器视图
var test = from a in db.tbl_users
where a == 2
select a;
return view (test.ToList());
Run Code Online (Sandbox Code Playgroud)
剃刀视图:
@model IEnumerable <Telephone_Search.Models.tbl_users>
@foreach (var item in model)
@HTML.DisplayFor(modelItem => item.users)
Run Code Online (Sandbox Code Playgroud)
但是我计划访问存在于我想要循环的实体框架中的其他表,像这样
@model IEnumerable <Telephone_Search.Models.'EntityFramework'>
@foreach (var item in 'entityframework')
@HTML.DisplayFor(modelItem => EntityFramework.'table'.'item')
Run Code Online (Sandbox Code Playgroud)
我试图创建一个视图模式,但是我的类在模型文件夹中是分开的,我不确定如何将这些类包装到一个视图模型中?
您必须创建一个新类,通常称为 ViewModel 并在该类中传递数据:
public class MyViewModel
{
public IEnumerable<Telephone_Search.Models.tbl_users> users;
public IEnumerable<OtherType> otherThings;
public string SomeOtherProp {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
在视图中:
@model MyViewModel
foreach (var usr in Model.users) {...}
foreach (var ot in Model.OtherThings) {...}
<span>@Model.SomeOtherProp</span>
Run Code Online (Sandbox Code Playgroud)
在控制器中:
var test = from a in db.tbl_users
where a == 2
select a;
var otherTypes = from x in db.tbl_otherTypes where x.Prop > 10 select x;
return this.View(new MyViewModel
{
users = test,
otherThings = otherTypes,
SomeOtherProp = "stackoverflow answer"
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3761 次 |
| 最近记录: |