以下方法返回一个IEnumerable MODEL被调用的PROF.
而不是使用模型,我想使用viewModel包含相同字段的a Model PROF.如何更改以下函数以返回my VIEWMODEL(被调用MyProfViewModel)而不是model(被调用PROF).
public async Task<ActionResult> Index()
{
var cp= db.PROF.Include(c => c.ACCOUNTS);
return View(await cp.ToListAsync());
}
Run Code Online (Sandbox Code Playgroud)
视图模型
public class MyProfViewModel
{
public int myprofID { get; set; }
public string myprofDes{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
模型
public class PROF
{
public int ID{ get; set; }
public string DESCRIPTION { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
小智 5
乔尔的答案就是这样.但既然你提到你正在开始,我会提供一个更多的三角形答案,以便更清楚地说明如何使用.
首先你定义一个转换,在这种情况下我把它放在ViewModel中,但是你可以将它放在其他更适合你项目的地方:
public class MyProfViewModel
{
public int myprofID { get; set; }
public string myprofDes { get; set; }
public static MyProfViewModel FromModel(PROF model)
{
var viewModel = new MyProfViewModel()
{
myprofID = model.ID,
myprofDes = model.DESCRIPTION
};
return viewModel;
}
}
Run Code Online (Sandbox Code Playgroud)
然后你只需在返回之前应用转换:
public async Task<ActionResult> Index()
{
var cp = PROF.Include(c => c.ACCOUNTS);
var models = await cp.ToListAsync();
var viewModels = models.Select(MyProfViewModel.FromModel);
return View(viewModels);
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,您可以通过将其添加到ViewModel类来转换为模型:
public PROF ToModel()
{
return new PROF()
{
ID = this.myprofID,
DESCRIPTION = this.myprofDes
};
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
709 次 |
| 最近记录: |