【发布时间】:2017-04-30 02:38:32
【问题描述】:
我的项目中有两个表作为模型,例如:-
public partial class TblAlbum
{
public int ID { get; set; }
public string Album { get; set; }
public string Artists { get; set; }
public Nullable<int> AudioID { get; set; }
public Nullable<int> VideoID { get; set; }
public virtual TblVideo TblVideo { get; set; }
public virtual TblAudio TblAudio { get; set; }
}
和
public partial class TblAudio
{
public int ID { get; set; }
public string Name { get; set; }
public string Alt { get; set; }
public string Artist { get; set; }
public string Image { get; set; }
public int LangID { get; set; }
public virtual TblLanguage TblLanguage { get; set; }
public virtual ICollection<TblAlbum> TblAlbums { get; set; }
}
现在我已将 ViewModel 设为 GetDetailsVM,它可以访问这两个表并具有 LINQ 查询:-
public class GetDetailsVM
{
private MusicEntities db = new MusicEntities();
public IEnumerable<dynamic> GetAudio()
{
var AudioList = from au in db.TblAudios
join al in db.TblAlbums on au.ID equals al.AudioID into ar
from al in ar.DefaultIfEmpty()
select new { au,al };
return AudioList.ToList();
}
}
我的 ViewModel(AudioAlbumVM) 读取 Getaudio() 应该是这样的:-
public class AudioAlbumVM
{
public IEnumerable<dynamic> AudioObjList { get; set; }
public string AlbumName { get; set; }
}
现在我想在我的控制器中访问这个 ViewModel,然后在我的 cshtml 中使用它。
我的控制器:-
public ActionResult Audio()
{
ViewBag.Title = "Audio";
var AudioSummary = new GetDetailsVM();
var viewModel = new AudioAlbumVM
{
AudioObjList = AudioSummary.GetAudio().First()
};
return View(viewModel);
}
更新
我的视图(Audio.cshtml)如下:-
@model GarhwalMusic.Models.AudioAlbumVM.AudioObjList
<a class="art" href="single.html"> @Model.AudioObjList</a>
我正在回答这个问题LINQ left join only works in the ActionResult,但我完全迷路了。需要有关如何使用另一个 ViewModel(GetDetailsVM) 然后在控制器中然后在 cshtml 中创建 AudioAlbumVM 的帮助和说明。非常感谢任何帮助!
【问题讨论】:
-
创建一个具有您需要在视图中使用的属性的视图模型,然后根据 GetAudio 方法的结果填充该视图模型
-
显示
AudioAlbumVMclass的定义 -
在 linq 中,您需要将所需数据选择到
AudioAlbumVM视图模型中。因此,如果您可以提供有关该类的详细信息,我们可以进一步提供帮助 -
感谢您的 cmets 。很抱歉,我之前无法正确格式化我的问题。我已经更新了这个问题。有我的视图模型 AudioAlbumVM。希望这次我能说清楚。
-
@Deepak
IEnumerable<dynamic> AudioObjList这里你想用什么来代替dynamic??
标签: c# mysql asp.net-mvc asp.net-mvc-4 razor