如何组合脚本#和Web控件?

时间:2011-01-21 02:11:25

标签: asp.net visual-studio-2010 webusercontrol script#

我目前在VS2010中有一个Web应用程序项目。每个控件(在* .ascx文件中)都包含在它自己的单独文件夹中,以及该控件使用的Web服务(在* .asmx文件中)和用于操作它的javascript对象(在* .js文件中)。所以项目布局看起来像:

WebApp/
  WebControl1/
    WebControl1.ascx
      WebControl1.ascx.cs
      WebControl1.ascx.designer.cs
    WebControl1.asmx
      WebControl1.asmx.cs
    WebControl1.js
  WebControl2/
    ...
  Global.asax
  Default.aspx
    Default.aspx.cs
    Default.aspx.designer.cs
  ...

项目正在扩展,我正在寻找使用Script#升级和替换.js文件。我想维护这个结构,但据我所知,在同一个项目中没有办法混合Script#和常规C#文件。

我查看了脚本#站点上的自述文件PDF并下载了PhotoDemo示例,但我找不到在Web控件旁边使用脚本#的任何示例。我尝试将“脚本支持”模板添加到项目中,然后从脚本#模板列表中添加类和页面模板,但它们都被视为常规C#源代码文件。

我使用了反射器来查看由脚本#安装的mscorlib,System.Web,ScriptSharp.Web,ScriptSharp.VisualStudio,ScriptSharp和Script.Windows二进制文件,并且无法找到任何允许的内容这种行为。

有没有人实现类似的东西或有任何进一步的提示?

我目前设法使用Script#的唯一方法是拥有一个单独的Script#项目,并将javascript文件的输出放在我的Web应用程序中。它有效,但不太理想。

感谢您的时间,

1 个答案:

答案 0 :(得分:0)

我最近采取了暴跌,几乎完全停止使用Web用户控件。我将控制HTML编译成Script#输出,而不是回发,我使用WCF进行Web服务调用。我想你接触到了这一点,但在我看来,如果设计和逻辑分别在两个独立的项目中,那么试图同步单个概念单元的设计和逻辑就太麻烦了。

我的项目布局现在基本上是这样的:

WebApp/
  Pages/
    Home.aspx
    [etc]
  Services/
    MainService.svc

ScriptSharp/
  UI/
    Widget1.html
    Widget1.html.cs
    Widget2.html
    Widget2.html.cs

我通过将“.html”文件设置为“Compile”来欺骗系统,将其内容转换为Script#输出中的常量。在我的“.html.cs”文件中,我有你所期望的(点击,更改等事件处理程序),除了UI逻辑现在比以前更多地利用jQuery(一件好事)。

如果您感兴趣,可以查看我的Sharp UI项目,该项目负责解析html常量并将每个html片段视为(客户端版本的)Web用户控件。< / p>