Вот еще один способ:
На главной странице включите область для встроенных сценариев:
<head>
...
<asp:ContentPlaceHolder runat="server" ID="_inlineScripts" />
...
</head>
Затем в Page_Load создайте служебную функцию:
protected void Page_Load( object sender, EventArgs e )
{
AddInlineScript( string.Format( "$.url=function(url){{return '{0}'+url;}}", GetBaseUri() ) );
...
}
private Uri GetBaseUri()
{
var requestUrl = Request.Url.AbsoluteUri;
var i = requestUrl.IndexOf( request.Path );
return new Uri( requestUrl.Substring( 0, i ) );
}
private void AddInlineScript( string content )
{
var script = new HtmlGenericControl( "script" );
script.Attributes.Add( "type", "text/javascript" );
script.InnerHtml = content;
_inlineScripts.Controls.Add( script );
}
Теперь вы можете использовать эту функцию в вашем AJAX:
$.ajax({
url: $.url('path/to/my-handler'),
...
});
Хотя Марк предложил мне альтернативу, я прочитал этот связанный вопрос SO , а C # и VB пока не поддерживаются.
Похоже, вы действительно говорите о C # "компилятор как услуга" (в конце этого видео ), который, надеюсь, будет в шкале времени 5.0 для .NET (хотя в Mono теперь есть ). На данный момент,