Как бы я это сделал, создав объект класса, который будет иметь все свойства, которые вы хотите получить из возвращенного запроса linq. -
Итак, мы выполняем запрос linq и получаем результаты.
Затем у нас будет новый вызов класса ViewModelOfPage (то, что мы будем возвращать на страницу), который будет иметь все свойства, которые мы хотим вернуть.
Наш класс будет выглядеть как -
public class ViewModelOfPage
{
public string Name {get;set;}
public string ImageUrl{get;set;}
public string ResortDetails {get;set;}
public string CheckIn {get;set;}
public string Address {get;set;}
public int TotalPrice {get;set;}
// this may be a double in your example or w/e value you want it set to.
}
Затем мы создадим этот объект класса в нашем контроллере, инициализируем его значениями из объекта obj, который мы вернули с помощью запроса linq, а затем отправим этот объект на страницу, где мы можем связать его свойства в представлении.
поэтому в нашем контроллере мы только что завершили запрос linq и получили наш объект resultsObj.
Затем мы инициализируем нашу модель представления следующим образом:
ViewModelOfPage vm = new ViewModelOfPage
{
Name = resultsObj.Name,
ImageUrl = resultsObj.ImageUrl ,
ResortDetails = resultsObj.ResortDetails,
CheckIn = resultsObj.CheckIn,
Address = resultsObj.Address,
TotalPrice resultsObj.TotalPrice
}
return View("ourView",vm);
Надеюсь, это поможет объяснить процесс, и именно так я и попытаюсь это сделать. Если есть лучшие способы, пожалуйста, объясните ниже :)
Просто к сведению, все это мой первый пост, так что я пишу код, скорее всего, неверным образом, поэтому я приношу извинения всем за боль, которую они могут испытывать при чтении: D надеюсь, у вас все будет хорошо во вторник.
Если вы хотите вернуть все строки на страницу, вы должны сделать:
List<ViewModelOfPage> vm = new ViewModelOfPage;
foreach (var row in resultsObj)
{
//An example of only selecting certain results
if(row.Name == "John" && row.TotalPrice > 15){
var tempVm = new ViewModelOfPage
{
Name = row.Name,
ImageUrl = row.ImageUrl ,
ResortDetails = row.ResortDetails,
CheckIn = row.CheckIn,
Address = row.Address,
TotalPrice row.TotalPrice
};
vm.add(tempVm);
}
}
view("ourview",vm);