---
title: Client-side navigation
summary: Submits a hidden form from the browser to navigate between BOL applications.
status: draft
owner: SAIF IT Core Services
last_reviewed: 2026-10-12
library: BolMiddleware
reference_type: package
operation_id: OP-17
trigger: Menu item or script call in the browser
---

# Client-side navigation

`MenuNavigation.js` is the browser side of navigation. It lets menu links and consumer scripts move to another BOL application page by posting the target to the server.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-17 |
| **Trigger** | Menu item or script call in the browser |
| **Inputs** | Target application and page |
| **Outputs** | Form post to the `MenuItemClick` handler |
| **Primary components** | `MenuNavigation.js` |
| **Entry point** | `src/BolMiddleware/wwwroot/js/MenuNavigation.js` |

## Steps

1. The script builds a form whose action selects the `MenuItemClick` handler, by concatenating the target values into a string.
2. It calls `ShowLoading()` to show a progress indicator; the function is supplied by the consuming application**.
3. It submits the form, which runs [Menu item click](menu-item-click.md).

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start([Menu link or script call]) --> S1[Build form from target values]
	S1 --> S2[ShowLoading]
	S2 --> S3[Submit form]
	S3 --> EndOk([MenuItemClick handler])
```

## Failure and edge-case behavior

- Values are concatenated into script strings without escaping, so a target containing quotes can inject script.
- If `ShowLoading` is not defined by the consumer the call raises a script error**.

> **Note:** Statements marked with `**` could not be confirmed; treat
> as unknown until verified.

## Related documentation
- [Index](../index.md)
- [Overview](../overview.md)
- [Architecture](../architecture.md)
- [Dependencies](../dependencies.md)
- [Configuration](../configuration.md)
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [Security and authorization](../security-authorization.md)
- [Service registration](../service-registration.md)
- [API reference](../api/index.md)

## Sources
- src/BolMiddleware/wwwroot/js/MenuNavigation.js
- src/BolMiddleware/Pages/Shared/_BolCoreScriptsPartial.cshtml
