У меня есть метод индекса в контроллере, который выглядит следующим образом:
public ActionResult Index()
{
var object = _ObjectService.GetAll();
return View(object);
}
, который дает мне список объектов с этими свойствами:
public class Object : EntityWithNameAndId
{
public virtual Site Site { get; set; }
public virtual List<User> Users { get; set; }
public virtual List<Planning> Plannings { get; set; }
public virtual Guid IdPilote { get; set; }
}
Теперь в моем индексе () я хочу получить пользователя, связанного с идентификатором IdPilote, и отобразить его имя.
Я пробовал что-то подобное, благодаря этой теме ASP.Net MVC: вызов метода из представления:
@model List<MyClass.Models.Promotion>
@foreach (var item in Model)
{
<td>@item.Site.Name</td>
@{
var id = item.IdPilote;
//Here Interface and Service are folders
var user = MyDAL.Interface.Service.IUserService.Get(id);
}
<td>
//This is where i try to display my User name,
//that i get dynamically using the idPilote for each User in list
</td>
}
Но Get (id) не распознается как допустимый метод ..
public interface IUserService : IDisposable
{
User Get(Guid id);
}
public class UserService : IUserService
{
private MyContext context;
public UserService(MyContext context)
{
this.context = context;
}
public User Get(Guid id)
{
return context.User.Where(w => w.Id == id).SingleOrDefault();
}
}
Итак, каков наилучший способ получить объект User внутри моего представления,так как я получаю только идентификатор?
Должен ли я создать новый список, используя первый, в моем методе Index (где я могу вызвать IUserInterface.Get ()) или есть лучший способ сделать это?