当前位置: 首页 > 面试题库 >

带有Viewbag的MVC数据集

宋洲
2023-03-14
问题内容

如何将数据集放入视图包并在视图中显示结果?

我有一个模型的数据集,我将其写入了一个视图包。我想使用一个foreach循环将数据行从视图的视图包中取出。

我已经有一个html" target="_blank">变量进入视图,所以我不能正常传递数据集。 每页还将有许多其他数据集。所以我认为viewbag是解决此问题的最佳方法。

模型

class modeldata 
{
    public dataset readrows(DataSet dataset)
    {
    //returns data from sql query.
    }
}

控制器:

 DataSet data = new DataSet();
 modeldata getdata = new modeldata ();
 ViewBag.Data = getdata.readrows(data);
 return view("page1") //based on case statement. 
 //Already have a value going into view, so I need to use viewbag

看法:

@Model site.controllers.homecontroller;

     foreach (Model.data row in ViewBag.Data.Rows)
        {
            @:row["id"] + " " + row["name"];
        }

问题答案:

要在视图中显示数据,您有两个选择。一种是将Model类的实例传递给强类型的视图。第二个选项是使用ViewBag。在您的情况下,您似乎同时做了这两项工作,但我建议您使用强类型视图方法。

视图将具有一个Model属性,该属性表示您的@Model声明指定的类类型的实例。在您的代码中,您正在使用无法使用的控制器类。我重写了该示例以使用aDataSet作为模型。如您所见,ModelView的属性成为System.Data.DataSet该类的实例,并具有其所有属性和方法。

看法

@Model System.Data.DataSet;

foreach (DataRow row in Model.Rows)
{
    @:row["id"] + " " + row["name"];
}

控制器

DataSet data = new DataSet();
modeldata getdata = new modeldata();
return View(getdata.readrows(data));

编辑:

这是一个在模型类中使用Dictionary来存储多个DataSet的示例。然后,您可以修改视图以将modeldata类型用作其Model类。

模型

namespace Site.Models
{
    class modeldata
    {
        public Dictionary<string, DataSet> DataSets { get; set; }

        public static DataSet ReadRows(DataSet dataset)
        {
            //returns data from sql query.
        }
    }
}

看法

@Model Site.Models.modeldata;

@foreach (System.Data.DataTable table in Model.DataSets["sampleData"].Tables)
{
    foreach (System.Data.DataRow row in table.Rows)
    {
        @:row["id"] + " " + row["name"];
    }
}

控制器

DataSet data = new DataSet();
modeldata getdata = new modeldata();
getdata.DataSets["sampleData"] = modeldata.ReadRows(data);
return View(getdata);


 类似资料:
  • 本文向大家介绍.NET MVC中ViewData,ViewBag和TempData的区别浅析,包括了.NET MVC中ViewData,ViewBag和TempData的区别浅析的使用技巧和注意事项,需要的朋友参考一下 本文分析了.NET MVC中ViewData,ViewBag和TempData的区别。分享给大家供大家参考。具体分析如下: ViewData和TempData是字典类型,赋值方式用

  • 问题内容: 所以我刚拿起VS2012,我想用EF5启动ASP.NET MVC 4应用程序。 我的主机没有MSSQL,所以我必须使用MySQL。 如何告诉我的应用程序应使用MySQL?(我想使用devart MySQL连接器,也可以使用mysql.com的连接器) 问题答案: 您需要使用连接字符串DbProviderFactory和用于MySql Connector 6.5.4的自定义Databas

  • 问题内容: 如果这是完全相同的内容,请纠正我,我知道这个话题经常被讨论,但是找不到确切的答案。 问题: 在MVC Web应用程序中处理Hibernate对象的最佳实用解决方案是什么? 细节: 我正在使用Hibernate,并希望在可能的情况下利用延迟加载。 我正在使用MVC风格的webapp。 我讨厌获得延迟加载初始化异常。 我讨厌不得不在事务之间重新连接Hibernate对象。 选项: 渴望装载

  • 我正在尝试在Heroku上部署我的Quarkus-app。它工作正常,但我需要使用固定值指定数据源参数。因为Heroku可能会旋转此参数,所以这不是一个真正的好主意。 在Quarkus中,我需要应用程序中的这3个参数。属性: Heroku只给了我1个环境变量(

  • 但是现在的问题是,当从计划的作业调用时,WebClient不能调用远程资源服务器。我得到以下错误: 如果我使用MVC控制器中的这个WebClient而不是计划的工作,事情就会很好。在这方面的任何帮助都将不胜感激。

  • 我在我的项目中使用spring data jpa和spring mvc。然而,我总是得到错误。 如果我注释jpaconfig.java,我的应用程序运行良好。 我不知道为什么?请你帮帮我: 我的代码: WebAppConfig.java jpaconfig.java 应用程序.属性