为了将枚举器呈现给客户端,我在.ashx文件中使用以下代码:
<%@ WebHandler Language="C#" Class="Common" %>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Xeleton.ModuleAccount.Core;
using Xeleton.ModuleBase.Core;
public class Common : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/javascript";
context.Response.Write(SharedFunctionality.SerializeEnumerator<AccountType>());
}
public bool IsReusable
{
get
{
return false;
}
}
}
这会产生以下输出:
AccountType={"Local":0,"Google":1,"Facebook":2,"Twitter":3};
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/Scripts").Include("~/Services/Common.ashx"));
}
一切正常,网站正常运行。
当我将此应用程序部署到服务器时,我在firebug控制台中收到以下错误:
所以我认为bundle逻辑正在读取文件而不是执行和读取输出。我在发布模式下构建我的开发机器,但不会发生错误。服务器是2012R2使用IIS8.5
答案 0 :(得分:0)
您使用捆绑包将javascript或css文件捆绑在一起而不是ashx文件。
来自BundleConfig.cs的片段
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
}
然后在你的cshtml文件中引用你的包,将你的javascript文件包含在生成的html中。
@Scripts.Render("~/bundles/jquery")