Возможно ли использовать элемент управления источником данных в ASP.NET MVC? - PullRequest
1 голос
/ 01 апреля 2009

Я хочу использовать LinqDataSource или ObjectDataSource с ViewData.Model, где ViewData.Model - строковый массив.

Я не хочу привязывать источник данных к событию PageLoad представления.

Возможно ли это? Как?

1 Ответ

1 голос
/ 01 апреля 2009

Вы должны НЕ вернуть фактический источник данных в ваше представление, так как это нарушит всю концепцию MVC. Вместо этого вы должны возвращать объекты данных из источника через контроллер, чтобы иметь четкое разделение внутренних частей модели и представления.

Однако, если вы действительно хотите вернуть свой источник данных, это то, как вы это делаете, это так же, как с любым видом объекта, который вы хотите: в вашем контроллере вы возвращаете новое представление с объектом в качестве параметра. Этот объект станет доступным через свойство Model представления.

т.е. в вашем контроллере есть следующие действия:

public ActionResult YourAction() {
    var yourDataSource = GetYourDataSourceMethod();
    return View(yourDataSource);
}

private LinqDataSource GetYourDataSourceMethod() { 
    // Return your datasource ... 
}

По вашему мнению, вы можете напрямую вызвать свойство Model и получить доступ к yourDataSource. Вам нужно будет набрать приведение, если вы не ввели свой вид следующим образом:

<%= var myDataSource = (LinqDataSource) Model %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...