J'ai finalement obtenu IntelliSense travailler pour JQuery par l'application du correctif KB958502 à Visual Studio 2008 et incluant cette ligne:Comment puis-je obtenir intellisense pour les services WCF Ajax?
/// <reference path="JQuery\jquery-1.3.2.js"/>
en haut de mes fichiers .js. Maintenant, je suis en train de comprendre comment obtenir IntelliSense JavaScript pour les serveurs proxy clients générés par les éléments ScriptReference du ScriptManager (comme indiqué ici):
<asp:ScriptManager ID="ScriptManager1" runat="Server" EnablePartialRendering="false" AsyncPostBackTimeout="999999">
<Services>
<asp:ServiceReference path="../Services/DocLookups.svc" />
</Services>
</asp:ScriptManager>
Les procurations client travaillent - à savoir que je peux faire des appels à travers eux , mais je ne reçois aucun Intellisense.
Mon service est défini par un fichier .svc:
<%@ ServiceHost Language="C#" Debug="true" Service="Documents.Services.DocLookups" CodeBehind="~/App_Code/DocLookups.cs" %>
Le code derrière le fichier ressemble:
[ServiceContract(Namespace = "Documents.Services", Name = "DocLookups")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class DocLookups {
...
une méthode d'échantillonnage dans cette classe est:
//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;
}
et utilise un contrat de données défini comme suit:
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; }
}
}
Dans mes fichiers javascript, un appel à ce service ressemble à:
Documents.Services.DocLookups.GetCategoriesForSelectList(...
mais je ne reçois pas IntelliSense (par exemple, si je tape des documents. rien n'apparaît). Je ne comprends pas intellisense pour les méthodes générées ou les types [DataContract] utilisés par les méthodes.
Je crois que je suis supposé pour obtenir Intellisense pour ces proxies et types, mais ne peux pas comprendre ce que je pourrais faire mal. TIA.
Il ne fonctionnait pas au début, comme je l'ai indiqué dans mon post, mais il DID travail une fois que je me suis rendu compte que je devais le précéder d'une ref à MicrosoftAjax.js /// /// Alors merci pour l'aide. –
/// ..... ce ne serait pas sympa! –
BozoJoe
La référence de fichier de service avec la référence MicrosoftAjax.js est apparemment également requise dans VS2010. Je ne pouvais pas trouver cela documenté nulle part! – BrianFinkel