【发布时间】:2009-04-01 05:25:36
【问题描述】:
我想在 ViewData.Model 中使用 LinqDataSource 或 ObjectDataSource,其中 ViewData.Model 是一个字符串数组。
我不想在视图的 PageLoad 事件上绑定数据源。
有可能吗?怎么样?
【问题讨论】:
标签: c# asp.net asp.net-mvc data-binding
我想在 ViewData.Model 中使用 LinqDataSource 或 ObjectDataSource,其中 ViewData.Model 是一个字符串数组。
我不想在视图的 PageLoad 事件上绑定数据源。
有可能吗?怎么样?
【问题讨论】:
标签: c# asp.net asp.net-mvc data-binding
您应该不将实际数据源返回到您的视图中,因为这会破坏整个 MVC 概念。相反,您应该通过控制器从源返回数据对象,以便清晰地分离模型内部和视图。
但是,如果您真的想返回数据源,这就是您的操作方式,它与您想要的任何类型的对象相同:在您的控制器中,您返回一个以对象作为参数的新视图。该对象将通过视图的 Model 属性变得可用。
即在您的控制器操作中有以下内容:
public ActionResult YourAction() {
var yourDataSource = GetYourDataSourceMethod();
return View(yourDataSource);
}
private LinqDataSource GetYourDataSourceMethod() {
// Return your datasource ...
}
在您看来,您可以直接调用Model 属性并访问yourDataSource。如果您没有像这样输入视图,则需要输入强制转换:
<%= var myDataSource = (LinqDataSource) Model %>
【讨论】: