# System.Web.WebPages.Razor

**Kind:** Service

**Source:** `Pams/Core/Pams.Core/Pams.Core.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

`System.Web.WebPages.Razor` is a NuGet package dependency declared in `Pams.Core.csproj`. It provides Razor page rendering support for the legacy ASP.NET Web Pages stack used by the Pams.Core project.

## Diagram

```mermaid
sequenceDiagram
    participant Client
    participant PamsCore as Pams.Core
    participant Razor as System.Web.WebPages.Razor
    participant View as Razor Page

    Client->>PamsCore: Request page
    PamsCore->>Razor: Resolve Razor rendering support
    Razor->>View: Parse and render page
    View-->>PamsCore: Rendered HTML
    PamsCore-->>Client: Response
```

## Usage

```typescript
async function loadPamsPage(path: string): Promise<string> {
  const response = await fetch(path, {
    headers: {
      Accept: "text/html",
    },
  });

  if (!response.ok) {
    throw new Error(`Page request failed: ${response.status}`);
  }

  return response.text();
}

loadPamsPage("/Reports")
  .then((html) => {
    document.body.innerHTML = html;
  })
  .catch((error) => {
    console.error(error);
  });
```

## AI Coding Instructions

- Keep `System.Web.WebPages.Razor` declared as a package reference in `Pams.Core.csproj` when Razor Web Pages rendering is required.
- Treat this package as server-side ASP.NET infrastructure; TypeScript and JavaScript clients consume its rendered HTTP responses rather than calling it directly.
- Check package version compatibility with other `System.Web.*` dependencies before changing the project file.
- Avoid mixing this legacy Razor Web Pages dependency with ASP.NET Core Razor packages unless the hosting model is being migrated.
