传递MVC控制器的列列表并返回这些列的数据?

时间:2013-03-01 15:32:44

标签: c# asp.net-mvc asp.net-mvc-4 datatables jquery-datatables

我正在尝试为Datatables构建一个帮助类,需要一些建议。

我想创建一个帮助程序,我可以传入一个对象,该对象表示由特定模型键入的DataTables的设置。此对象将包含一组表达式,这些表达式表示帮助程序要使用的列。作为DataTables对象的一部分,将有一个属性,其中包含用于为网格提供数据的URL。这实际上是sAjaxSource参数。作为URL调用的一部分,将发送一个JSON包,其中包含有关列的信息。整节,我明白了如何构建。基本上,我会构建包含列定义的DataTables JavaScript代码,并创建一个JSON对象,表示我想在URL中传递的列。

我需要一些建议的区域是在对服务器/控制器进行调用后为特定列构建数据。所以我的控制器看起来像这样:

public ActionResult GetUsersList(IEnumerable<DatatableColumnJson> columns)
    {
        var users = _someUserRepository.GetAll();


        foreach (var user in users)
        {
            //Here I would build the JSON that DataTables needs to render the grid.
            //I would iterate through the users and pull out the data for the specific columns
        }

        return Json(someCompleteDataTablesObject, JsonRequestBehavior.AllowGet);
    }

支持课程:

public class DatatableColumnJson
{
    public string Name { get; set; }
    public string Visible { get; set; }
}

public class User
{
    public string UserName { get; set; }
    public string Email { get; set; }
}

所以我首先想到我可以使用反射,但这似乎有点密集,也许。另一个想法是将列名转换为表达式,以便可能提取数据。我想要一些有效的东西,而且没有太多的开销,但也许我的要求太多了。

0 个答案:

没有答案