Так как вы заявили, что вы не можете использовать вид MvcController или Razor, вы могли бы стать ближе к металлу: IHttpHandler
.
Так начать писать одно:
public class MyHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
var response = context.Response;
response.ContentType = "text/javascript";
var message = "This is some super dynamic message. The UTC time now is: " + DateTime.UtcNow.ToLongTimeString();
var js = string.Format("alert({0});", new JavaScriptSerializer().Serialize(message));
response.Write(js);
}
public bool IsReusable
{
get { return true; }
}
}
затем написать соответствующий обработчик маршрута:
public class MyHandlerProvider: IRouteHandler
{
public IHttpHandler GetHttpHandler(RequestContext requestContext)
{
return new MyHandler();
}
}
и в вашем Application_Start
добавить маршрут:
protected void Application_Start()
{
RouteTable.Routes.Add(
new Route(
"eventAggregation/events",
new MyHandlerProvider()
)
);
}
И если вы Бесполезный Не нужно вручную добавлять маршрут в Application_Start
, вы можете использовать WebActivator
. Просто написать статический класс запуска:
internal static class Startup
{
public static void Application_Start()
{
RouteTable.Routes.Add(
new Route(
"eventAggregation/events",
new MyHandlerProvider()
)
);
}
}
, а затем использовать широкий атрибут сборки:
[assembly: WebActivatorEx.PreApplicationStartMethod(typeof(MvcApplication1.Startup), "Application_Start")]
И теперь все, что осталось на ваш взгляд, должен ссылаться на него:
<script type="text/javascript" src="~/eventAggregation/events"></script>
Я он никогда не использовал его, но из того, что я понимаю, для этого используется «Node.js». –
Вы хотите, чтобы я менял backend на Node.js? – Anders