1

我的应用程序在用 C#.Net 编码的 Asp.net MVC3 中。我有一个视图,它有一个 DropDownList。这个下拉列表有我的数据库中存在的所有表的名称。我的要求是当用户从下拉列表中选择一个特定的表,然后通过 Json 将表的名称传递给 Json 方法,如下面的代码所示。

$("#MyTableNames").change(function () {                                         
    $("#MyDiv").load("/../MyController/MyActionMethod", { TableName:$("#MyTableNames").val() }, function () {
    });
});

以上是我如何将我的表名传递给控制器​​中的 Action。到这里一切都很好。以下是我的操作代码。我尝试了两种方法来编写查询......它也包括实体 SQL。没有 LINQ,因为 LINQ 不支持这个。

 //First Method


  public ActionResult MyAction(string TableName)
            {

         var model = db.ExecuteStoreQuery<TableName>("Select * from " + TableName + "      where Delete_Flag='" + false + "'");
ViewBag.MyData=model;
                return PartialView();
            }

//Second Method


    public ActionResult GetRecords(string TableName)
            {
             var sql = "SELECT VALUE emp FROM " + TableName + " AS emp ";
             var query = db.CreateQuery <TableName>(sql);
             Viewbag.MyData=query;       
             return PartialView();
            }

但是上述方法中没有一个作为<>想要参数作为表......我想将查询结果传递给 VierwBag 以便我可以在视图中填充它。建议我怎样才能做到这一点。

4

1 回答 1

1

由于您不知道在设计时要使用的类型,因此很难使用强类型泛型。

另一种方法是将 ExpandoObject\dynamic 与诸如Massive之类的微型 ORM 框架一起使用来查询数据。在这种情况下返回的数据是一个 ExpandoObject,如果需要,可以将其返回给客户端。

于 2012-04-14T08:50:54.410 回答