# System.Web.Razor

**Kind:** Service

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

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

NuGet package dependency

`System.Web.Razor` is a NuGet dependency of `Pams.Security` that provides Razor view compilation and rendering support for the legacy ASP.NET project. `Pams.Security` depends on it when serving Razor-backed security pages and HTML responses.

## Diagram

```mermaid
sequenceDiagram
    participant Browser
    participant Security as Pams.Security
    participant Razor as System.Web.Razor

    Browser->>Security: Request Razor-backed page
    Security->>Razor: Resolve and render Razor view
    Razor-->>Security: Rendered HTML
    Security-->>Browser: Return HTML response
```

## Usage

```typescript
import { execFileSync } from "node:child_process";

// System.Web.Razor is restored as a NuGet dependency of Pams.Security.
// It is a server-side .NET package and is not imported by browser code.
execFileSync(
  "nuget",
  ["restore", "Pams/Core/Pams.Security/Pams.Security.csproj"],
  { stdio: "inherit" },
);
```

## AI Coding Instructions

- Keep `System.Web.Razor` configured through the `Pams.Security.csproj` NuGet dependency rather than importing it from TypeScript or browser code.
- Treat this package as part of the legacy ASP.NET Razor rendering path for `Pams.Security`.
- Restore NuGet dependencies after changing project references or package configuration.
- Avoid replacing Razor rendering behavior without checking the security pages and views that depend on this package.
