2013-09-27 119 views
1

我使用的是带有jQuery AJAX和实体框架的DataTables。我从一个将它序列化为json的webmethod返回EntityFramework对象。我有很多需要生成CRUD页面的表格,所以在后端页面中会有CRUD webmethods。以前我用动态数据来做这件事。有没有办法使用T4模板生成这些页面?我不此刻有确切的代码,但最终的结果会是这样的使用T4模板生成代码

http://editor.datatables.net/release/DataTables/extras/Editor/examples/envelope_inline.html

这里是.aspx.cs一些示例代码,返回JSON

[WebMethod] 
    public string GetCustomers(int page) 
    { 
     return db.Customers.Skip(page*100).Take(100); 
    } 

    [WebMethod] 
    public string DeleteCustomer(int id) 
    { 
     // ... 
    } 

.aspx页面中
$(document).ready(function() { 
    var oTable = $('#example').dataTable({ 
     "bProcessing": true, 
     "bServerSide": true, 
     "sAjaxSource": "scripts/server_processing.aspx"    
     } 
    }); 
}); 
+0

当然有,示例代码会使演示更容易。你想做剃刀或正规的aspx? MVC或网络形式? – Maslow

+0

使用MVC,可以在模板中生成基于实体框架的CRUD。你到底在使用什么和尝试过什么? – Vulcronos

+0

@Maslow我包含代码。 – Multicaster

回答

2

当然,你可以做这样的:

<#@ template debug="false" hostspecific="false" language="C#" #> 
<#@ assembly name="System.Core" #> 
<#@ import namespace="System.Linq" #> 
<#@ import namespace="System.Text" #> 
<#@ import namespace="System.Collections.Generic" #> 
<#@ output extension="aspx.cs" #> 
<# var crudObject= "Customer"; 
var plural = crudObject+"s"; #> 

[WebMethod] 
public string Get<#=plural#>(int page) 
{ 
    return db.<#=plural#>.Skip(page*100).Take(100); 
} 

[WebMethod] 
public string Delete<#=crudObject#>(int id) 
{ 
    // ... 
} 
+0

我看到你有硬编码的crudObject。我想动态生成它。另外如果可能我想从实体框架对象中识别主键并创建方法,以便我可以根据该主键列名称进行删除。 – Multicaster

+0

当然可以,但在我看来,你在单个问题中问的问题很多。 – Maslow

+0

@Maslow只要告诉他如何进行参数化。你不必把整本圣经,只是几个章节给他。 –