1

我有一个使用 Internet 模板创建的 ASP.NET MVC4 应用程序。在这个项目中,我在 Views/Shared 文件夹中有两个布局文件,_Layout.chsmtl 和 _Layout.Mobile.cshtml。在每个文件中,我都加载了从 TypeScript 编译的不同脚本。在 _Layout.cshtml 我有

<script src="@Url.Content("~/Scripts/app.js?43")" type="text/javascript"></script>

在 _Layout.Mobile.cshtml 中,

<script src="@Url.Content("~/Scripts/MobileApp.js?2")" type="text/javascript"></script>

app.js 和 mobileapp.js 是根据项目文件中的以下设置创建的:

 <Target Name="BeforeBuild">
    <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; -out scripts\app.js scripts\app.ts -target ES5 @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" IgnoreExitCode="true" /> 
    <Exec Command="&quot;$(PROGRAMFILES)\Microsoft SDKs\TypeScript\0.8.0.0\tsc&quot; -out scripts\mobileapp.js scripts\mobileapp.ts  -target ES5 @(TypeScriptCompile ->'&quot;%(fullpath)&quot;', ' ')" IgnoreExitCode="true" />
  </Target>

该应用程序在 Internet Explorer 9 中正常运行。但是,当我在 Opera Mobile 中运行时,似乎没有加载 mobileapp.js,因为它的构造函数只是显示没有调用警报。这是 MobileApp.js 的 TypeScript 代码。

 export class MobileApp extends AppBase {                                  

        constructor () { 
            super(null, null)                
              alert("mobile page loading ...?");
        }      
    }

每次刷新 Opera Mobile 上的索引页面时,我还会将以下消息写入应用程序日志:

ERROR 2013-01-24 09:39:57,233 172979ms MvcApplication         Application_Error  - ASP.global_asax
System.Web.HttpException (0x80004005): File does not exist.
   at System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
   at System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context, String overrideVirtualPath)
   at System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state)
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

有任何想法吗?

4

1 回答 1

0

为了使构造函数运行,您必须实例化该类。例如:

var Test = new MobileApp();

于 2014-01-31T14:39:47.923 回答