Как получить доступ к свойствам ViewData в моем представлении? - PullRequest
3 голосов
/ 17 января 2009

Я создаю свое первое приложение на основе ASP.Net MVC и у меня возникают проблемы с доступом к результатам запроса linq to sql в одном из моих представлений.

Вот мой контроллер:

    public ActionResult Details(int id)
    {
        var dataContext = new BuffetSuppliersDBDataContext();
        var supplier = from m in dataContext.BO_Suppliers
                        where m.SupplierID == id
                        select m;

        return View(supplier);
    }

Как я могу получить доступ к свойству supplier.SupplierName на моей странице просмотра, я видел примеры использования цикла foreach и преобразования ViewData.Model в IEnumerable, но использование цикла не имеет особого смысла, поскольку я возвращаю только одну строку.

1 Ответ

3 голосов
/ 17 января 2009

Выберите первый объект, затем используйте его в качестве модели. Строго типизированное представление (например, ViewPage ) сделает его тривиальным для доступа к свойствам модели.

    var dataContext = new BuffetSuppliersDBDataContext();
    var supplier = (from m in dataContext.BO_Suppliers
                    where m.SupplierID == id
                    select m).FirstOrDefault();

    ViewData.Model = supplier;

    return View();

Со страницей просмотра, определенной как

    public class Details : ViewPage<Supplier>
    {
    }

и в представлении, используя

    <label for="SupplierName" class='details-label'>Supplier Name:</label>
    <span class='details-data'> <%= ViewData.Model.Name %> </span>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...