Я тянул строки из базы данных, ища конкретные столбцы. Сейчас он тянет 5 строк, и мне нужно указать правильные столбцы для каждой из строк с моделью. Вот мой контроллер:Как вернуть массивную динамику в mvc 4 в представление?
public ActionResult Index()
{
//Use mimetype as key to find correct rows
var mimetype = "mcv";
dynamic LookupData = GetVideoUrls(mimetype);
return View(LookupData);
}
private dynamic GetVideoUrls(string mimetype)
{
var VideoService = new AppServices.Video.GetAllVideoByMimeType();
dynamic videoFiles = VideoService.Execute(mimetype);//Execute grabs the rows from the database
return (videoFiles);
}
На моем взгляде, у меня есть:
@model IEnumerable<dynamic>
видеофайлы возвращают пять строк с 13 столбцов. Мне нужно получить доступ к 2 столбцам для каждой из пяти строк в представлении. Как мне это сделать?
Update Вот моя модель:
public class LoginVideoModel
{
public LoginVideoModel(string englishurl, string spanishurl)
{
EnglishVideoUrl = englishurl;
SpanishVideoUrl = spanishurl;
}
public string EnglishVideoUrl
{
get;
set;
}
public string SpanishVideoUrl
{
get;
set;
}
}
public class WelcomeVideoModel
{
public WelcomeVideoModel(string englishurl, string spanishurl)
{
EnglishVideoUrl = englishurl;
SpanishVideoUrl = spanishurl;
}
public string EnglishVideoUrl
{
get;
set;
}
public string SpanishVideoUrl
{
get;
set;
}
}
public class BenefitVideoModel
{
public BenefitVideoModel(string englishurl, string spanishurl)
{
EnglishVideoUrl = englishurl;
SpanishVideoUrl = spanishurl;
}
public string EnglishVideoUrl
{
get;
set;
}
public string SpanishVideoUrl
{
get;
set;
}
}
public class MyEnrollmentVideoModel
{
public MyEnrollmentVideoModel(string englishurl, string spanishurl)
{
EnglishVideoUrl = englishurl;
SpanishVideoUrl = spanishurl;
}
public string EnglishVideoUrl
{
get;
set;
}
public string SpanishVideoUrl
{
get;
set;
}
}
public class AdminSideVideoModel
{
public AdminSideVideoModel(string englishurl, string spanishurl)
{
EnglishVideoUrl = englishurl;
SpanishVideoUrl = spanishurl;
}
public string EnglishVideoUrl
{
get;
set;
}
public string SpanishVideoUrl
{
get;
set;
}
}
Надеется, что это помогает, как хорошо.
Update Вот код videoservice.execute:
public class GetAllVideoByMimeType
{
public dynamic Execute(string mimetype)
{
return DBRepository.GetAllByCritera<DataContainers.File>("WHERE MimeType = @0", mimetype);
}
}
обновление 3 Вот хранилище:
/// <summary>
/// Obtain one or more items from db based on Where Clase
/// </summary>
/// <typeparam name="T">Table Type</typeparam>
/// <param name="whereClause">Standard WHERE clause with paramterized statements
/// Example: WHERE [email protected]",args: 4
/// </param>
/// <param name="arguments"></param>
/// <returns></returns>
public static IEnumerable<dynamic> GetAllByCritera<T>(string whereClause, params object[] arguments)
{
var model = new DBTableModel<T>();
return model.All(where: whereClause, args: arguments);
}
Что делать, если третье состояние ред этим:
public ActionResult Index()
{
//Use mimetype as key to find correct rows
var mimetype = "mcv";
dynamic LookupData = GetVideoUrls(mimetype);
return View(LookupData);
}
private dynamic GetVideoUrls(string mimetype)
{
var VideoService = new AppServices.Video.GetAllVideoByMimeType();
List<dynamic> videoFiles = VideoService.Execute(mimetype);
ApplicationVideoModel appvids = new ApplicationVideoModel();
dynamic LoginFiles = videoFiles.Where(v => v.OriginalFileNameWithoutExtension == "LoginController").FirstOrDefault();
dynamic WelcomeFiles = videoFiles.Where(v => v.OriginalFileNameWithoutExtension == "WelcomeController").FirstOrDefault();
dynamic BenefitFiles = videoFiles.Where(v => v.OriginalFileNameWithoutExtension == "BenefitController").FirstOrDefault();
dynamic MyEnrollmentFiles = videoFiles.Where(v => v.OriginalFileNameWithoutExtension == "MyEnrollmentController").FirstOrDefault();
dynamic AdminFiles = videoFiles.Where(v => v.OriginalFileNameWithoutExtension == "AdminSideController").FirstOrDefault();
return LoginFiles;
}
Каждый из динамики возвращает строку, мне нужно, но как бы я посылаю каждый в представлении?
Можете ли вы создать для этого модель? – Shyju
Да. Но как это работает с этим? –
Обновлен исходный вопрос, добавив модель, но не знаю, как это работает с тем, что я делаю. –