1

我目前在 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# 文件。

我查看了 Script# 站点上的 Readme PDF 并下载了 PhotoDemo 示例,但我找不到任何与 Web Controls 一起使用 Script# 的示例。我尝试将“脚本支持”模板添加到项目中,然后从 Script# 模板列表中添加 Class 和 Page 模板,但它们都被视为常规 C# 源代码文件。

我使用反射器查看了由 Script# 安装的 mscorlib、System.Web、ScriptSharp.Web、ScriptSharp.VisualStudio、ScriptSharp 和 Script.Windows 二进制文件,但找不到任何允许这种行为的东西。

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

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

谢谢你的时间,

4

1 回答 1

0

我最近冒险尝试并几乎完全停止使用网络用户控件。我将我的控制 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”文件设置为“编译”来欺骗系统,将它们的内容转换为 Script# 输出中的常量。在我的“.html.cs”文件中,除了 UI 逻辑现在比以前更多地使用 jQuery(一件好事)之外,我有你所期望的(点击、更改等的事件处理程序)。

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

于 2011-03-26T06:34:22.403 回答