Вместо вызова всех данных контента во время метода ngOninit (), который иногда никогда не используется, вы можете прикрепить обработчик событий (ngClick) к вашей вкладке ngb, например:
<ngb-tab *ngFor="let category of categories" (ngClick)="selectedTab(category.id)" [title]="category.name" [id]="category.id">
<ng-template ngbTabContent>
<!-- Here we will have some content.
This content comes from the API which takes category.id as a param -->
</ng-template>
</ngb-tab>
и в своем компоненте вы можете вызвать ваш метод отдыха, чтобы получить содержимое для вкладки:
@Component({...})
export class someComponent{
/* constructors private members bla bla */
selectedTab(id:int):any{
//call your service which makes http call to get content for your selected tab
getContent(id);
}
}
надеюсь, что ответ на ваш вопрос!
Параметры строки запроса могут быть приняты просто при помощи аргумента на действии - т.е.
public ActionResult Foo(string someValue, int someOtherValue) {...}
, который примет запрос как .../someroute?someValue=abc&someOtherValue=123
, Кроме которого, можно посмотреть на запрос непосредственно на большее количество управления.
Можно всегда использовать Request.QueryString
набор как Веб-формы, но можно также заставить MVC обработать их и передать их как параметры. Это - предложенный путь, поскольку это легче, и это проверит тип входных данных автоматически.
Я рекомендую использовать свойство ValueProvider контроллера, очень в способе, которым UpdateModel/TryUpdateModel делают для извлечения маршрута, запроса и требуемых параметров формы. Это сохранит Ваши сигнатуры методов от потенциального становления очень большим и подверганием частому изменению. Это также делает немного легче протестировать, так как можно предоставить ValueProvider к контроллеру во время модульных тестов.