I’ve finally got Intellisense working for JQuery by applying patch KB958502 to Visual Studio 2008 and including this line:
/// <reference path='JQuery\jquery-1.3.2.js'/>
at the top of my .js files. Now I’m trying to figure out how to get JavaScript intellisense for the client proxies generated by the ScriptManager’s ScriptReference elements (as shown here):
<asp:ScriptManager ID='ScriptManager1' runat='Server' EnablePartialRendering='false' AsyncPostBackTimeout='999999'> <Services> <asp:ServiceReference path='../Services/DocLookups.svc' /> </Services> </asp:ScriptManager>
The client proxies are working — i.e. I can make calls through them, but I’m getting no Intellisense.
My service is defined with a .svc file:
<%@ ServiceHost Language='C#' Debug='true' Service='Documents.Services.DocLookups' CodeBehind='~/App_Code/DocLookups.cs' %>
The code behind file looks like:
[ServiceContract(Namespace = 'Documents.Services', Name = 'DocLookups')] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] [ServiceBehavior(IncludeExceptionDetailInFaults = true)] public class DocLookups { ...
a sample method in this class is:
//Called at the begining of the page to fill in the category list [OperationContract] public SelectOption[] GetCategoriesForSelectList() { SelectOption[] Result; IDocumentRepository repository = new DocumentEntityRepository(ConnectionString); Result = (from cat in repository.GetDocCategories() select new SelectOption(cat.Category_ID.ToString(), cat.CategoryName)).ToArray(); if (Result.Length > 0) Result[0].Selected = true; //Select first item return Result; }
and it uses a data contract defined like this:
namespace Documents.Services { [DataContract] public class SelectOption { //A useful DTO to use when filling a <select> element with options public SelectOption(string optionValue, string optionText) { OptionValue = optionValue; OptionText = optionText; Selected = false; } public SelectOption(string optionValue, string optionText, bool selected) { OptionValue = optionValue; OptionText = optionText; Selected = selected; } [DataMember] public string OptionValue { get; set; } [DataMember] public string OptionText { get; set; } [DataMember] public bool Selected { get; set; } }
}
In my javascript files, a call to this service looks like:
Documents.Services.DocLookups.GetCategoriesForSelectList(...
but I get no Intellisense (for example, if I type Documents. nothing pops up). I don’t get intellisense for either the generated methods or the [DataContract] types used by the methods.
I believe that I am supposed to get Intellisense for these proxies and types, but can’t figure out what I might be doing wrong. TIA.
Did
/// <reference path='../Services/DocLookups.svc' />not work?