你能帮助我如何从mesto创建我自己的ViewData.Model吗?
public ActionResult Index()
{
ViewData["Message"] = "Moji Priatelia";
var friends = from friend in friendsDb.FriendsTables
orderby friend.Priezvisko
select friend;
var mesto = from mesta in friendsDb.MestoTables
orderby mesta.Mesto
select mesta;
return View(friends);
}
当我添加新视图时ViewData.Model有来自朋友的数据但没有来自mesto我怎样才能为mesto创建模型? 非常感谢我是初学者。
我有问题。
public class IndexViewModel
{
public IEnumerable<Friend> Friends { get; set; }
public IEnumerable<Mesta> Mesto { get; set; }
}
找不到类型或命名空间名称'Friend'(您是否缺少using指令或程序集引用?) 找不到类型或命名空间名称'Mesta'(您是否缺少using指令或程序集引用?)
但是表格有FriendTable,MestoTable,如果我使用这个名字它是核心。然后我通过IndexViewModel做新的视图但我不能 使用这个
<%: Model.Friends %>
<%: Model.Mesto %>
这会因错误而停止 传递到字典中的模型项的类型为'MVCApp.Controllers.IndexViewModel',但此字典需要类型为'System.Collections.Generic.IEnumerable`1 [MVCApp.Controllers.IndexViewModel]'的模型项
答案 0 :(得分:2)
只需创建一个ViewModel并将其传递给您的视图:
public class IndexViewModel
{
public IEnumerable<Friend> Friends { get; set; }
public IEnumerable<Mesta> Mesto { get; set; }
}
要实现这一点,首先需要使用以下内容调整操作方法:
public ActionResult Index()
{
ViewData["Message"] = "Moji Priatelia";
var friends = from friend in friendsDb.FriendsTables
orderby friend.Priezvisko
select friend;
var mesto = from mesta in friendsDb.MestoTables
orderby mesta.Mesto
select mesta;
var ViewModel = new IndexViewModel {
Friends = friends,
Mesto = mesto
}
return View(ViewModel);
}
现在需要使用IndexViewModel
类型强烈输入您的视图。
访问您的成员看起来有点像:
<%: Model.Friends %>
<%: Model.Mesto %>
ViewModels
是您需要在视图中显示并不真正投影域模型的复杂数据的方法。
答案 1 :(得分:0)
您最好的选择可能是将两个物体包裹在另一个物体中并将其传递给您的视野。
如:
public class FriendsMestoDataContext()
{
public IEnumerable<Friends> friends{get;set;}
public IEnumerable<Mesto> mesto{get;set}
}
然后,您可以将此新对象传递给您的视图并访问friends和mesto属性,这些属性将是您从Linq查询返回的两个类:
public ActionResult Index()
{
ViewData["Message"] = "Moji Priatelia";
var friendsData = from friend in friendsDb.FriendsTables
orderby friend.Priezvisko
select friend;
var mestoData = from mesta in friendsDb.MestoTables
orderby mesta.Mesto
select mesta;
var dataModel = new FriendsMestoDataContext(){
friends = friendsData,
mesto = mestoData}
return View(dataModel);
}
<强>更新强>
正如Shaharyar在下面所说,您需要使用FriendsMestoDataContex
强烈输入您的观点。