Asp.net 是否将自动完成方法放在单独的web文件中?
我有一个web站点,它有越来越多的AJAX调用 我的AJAX代码如下所示:Asp.net 是否将自动完成方法放在单独的web文件中?,asp.net,jquery,ajax,autocomplete,Asp.net,Jquery,Ajax,Autocomplete,我有一个web站点,它有越来越多的AJAX调用 我的AJAX代码如下所示: function setupNameAutocomplete(id) { $(id).autocomplete({ source: function(request, response) { $.ajax({ url: "selectName.aspx/getNameAutocomplete", .... [WebMethod
function setupNameAutocomplete(id) {
$(id).autocomplete({
source: function(request, response) {
$.ajax({
url: "selectName.aspx/getNameAutocomplete",
....
[WebMethod]
public static IEnumerable<string> getNameAutocomplete(string text)
{
IEnumerable<string> values = lookupNamesThatStartWith(text);
return values;
}
最初,上面的javascript代码用于一个网页,其中用户键入要搜索的人的姓名;我决定在名字上自动完成
然而,随着我继续开发这个网站,我决定能够在许多页面上使用相同的“名称”自动完成。从逻辑上讲,将我的javascript代码放在一个外部的.js文件中而不是在每个页面上重复它是有意义的
我希望将处理AJAX的.net代码也放在自己的文件中,这也是有道理的。.net自动完成代码如下所示:
function setupNameAutocomplete(id) {
$(id).autocomplete({
source: function(request, response) {
$.ajax({
url: "selectName.aspx/getNameAutocomplete",
....
[WebMethod]
public static IEnumerable<string> getNameAutocomplete(string text)
{
IEnumerable<string> values = lookupNamesThatStartWith(text);
return values;
}
[WebMethod]
公共静态IEnumerable getNameAutocomplete(字符串文本)
{
IEnumerable values=从(文本)开始的查找名称;
返回值;
}
当然,这些代码似乎属于外部的.asmx或.ashx文件,但除非我从selectName.aspx调用上述代码,否则我无法让javascript代码正常工作
如何在单独的代码文件中获取AJAX.net代码?如果我正确理解了您的问题,一个可行的解决方案是拥有一个基类,您的服务从该基类继承,该基类将实现通用的
WebMethod
或者,您可以将自动完成查找的逻辑抽象到一个类中,并根据需要每次从您的
WebMethod
s调用它,从而使它“非常干净”。如果我正确理解您的问题,一个可行的解决方案是让您的服务继承一个基类,该基类将实现通用的WebMethod
或者,您可以将自动完成查找的逻辑抽象到一个类中,并根据需要每次从
WebMethod
s调用它,从而使它“非常干净”。请参见这个问题,因为自动完成来自插件或jQuery UI版本,这可能有助于了解哪个版本。看到这个问题,由于插件或jQuery UI版本的自动完成功能,了解哪个版本可能会有所帮助。