Методы Ajax, не работающие с угловой маршрутизацией - PullRequest
0 голосов
/ 20 марта 2019

Вот мой конфигурационный файл роутера;

const appRoutes: Routes = [
  { path: '', redirectTo: 'giris', pathMatch: 'full' },

  //Route for Ajax methods
  { path: 'Ajax/*', redirectTo: 'Ajax/*', pathMatch: 'full' },

  { path: 'giris', component: GirisComponent },
  { path: 'biyografi', component: BiyografiComponent },
  { path: 'galeri', component: GaleriComponent },
  { path: 'siirleri', component: SiirleriComponent },

  { path: '**', component: GirisComponent }
];

export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);

А вот мои сервисные коды;

@Injectable()
export class CPService {
  private menuLink: string = "Ajax/Menu";

  constructor(private _http: Http) {}

  getMenu() {
    return this._http.get(this.menuLink)
      .map((response: Response) => response.json())
      .catch(this._errorHandler);
  }

  _errorHandler(error: Response) {
    console.error(error);
    return Observable.throw(error || "Server Error");
  }
}

А вот мой веб-метод;

[HttpGet]
public JsonResult Menu() {
  var categories = entity.Category.Where(a => a.Active == true && a.Display == true).ToList();

  foreach (var item in categories) {
    item.RouteUrl = item.RouteUrl.ToLower().Replace("-", "");
  }

  return Json(categories, JsonRequestBehavior.AllowGet);
}

Когда я пытаюсь получить доступ к веб-методу, он просто открывает обычную веб-страницу :( При отладке он не вызывает метод Menu из AjaxController.

Я жду ваших ответов. Я новичок вУгловой:)

1 Ответ

0 голосов
/ 20 марта 2019

Я только что добавил приведенный ниже код в начало моего файла RouteConfig.cs

  routes.MapRoute(
       name: "Ajax",
       url: "Ajax/{action}/{id}",
       defaults: new { controller = "Ajax", action = "Menu", id = UrlParameter.Optional }
  );

Затем я изменил свой конфигурационный файл углового маршрутизатора, как показано ниже (я только что удалил маршрут для методов Ajax);

   const appRoutes: Routes = [
      { path: '', redirectTo: 'giris', pathMatch: 'full' },
      { path: 'giris', component: GirisComponent },
      { path: 'biyografi', component: BiyografiComponent },
      { path: 'galeri', component: GaleriComponent },
      { path: 'siirleri', component: SiirleriComponent },
      { path: '**', component: GirisComponent }
   ];

   export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...