🌐 Secțiunea 1: ASP.NET Core & Razor Pages (Sintaxa @)
Q: Care este prima linie obligatorie în orice fișier .cshtml de tip pagină?
A: @page. Fără ea, fișierul nu este rutabil (nu poate fi accesat prin URL).
🌐 Secțiunea 1: ASP.NET Core & Razor Pages (Sintaxa @)
Q: Cum declari modelul de date (clasa C#) asociat unei pagini?
A: @model NumeProiect.Pages.NumeModel. Permite accesarea datelor prin proprietatea @Model.
🌐 Secțiunea 1: ASP.NET Core & Razor Pages (Sintaxa @)
Q: Care este sintaxa pentru a afișa valoarea unei variabile C# în HTML?
A: @NumeVariabila sau @Model.Proprietate.
Q: Cum scrii un comentariu în Razor?
A: @* Comentariul tău aici *@.
🌐 Secțiunea 1: ASP.NET Core & Razor Pages (Sintaxa @)
Q: Care este sintaxa pentru a injecta un serviciu (ex: contextul bazei de date) direct în pagină?
A: @inject NumeContext _context.
🏷️ Secțiunea 2: Tag Helpers (Sintaxa HTML-Server)
Q: Ce Tag Helper folosești pentru a crea un link către pagina “Edit” cu un ID specific?
A: <a>Edit</a>.
🏷️ Secțiunea 2: Tag Helpers (Sintaxa HTML-Server)
Q: Cum legi un element <input></input> de o proprietate din model pentru validare?
A: <input></input>. (Generează automat id și name).
🏷️ Secțiunea 2: Tag Helpers (Sintaxa HTML-Server)
Q: Sintaxa pentru afișarea rezumatului erorilor de validare la începutul formularului?
A: <div asp-validation-summary="All" class="text-danger"></div>.
🏷️ Secțiunea 2: Tag Helpers (Sintaxa HTML-Server)
Q: Cum incluzi scripturile de validare client-side într-o pagină?
A: ```html @section Scripts { @{await Html.RenderPartialAsync(“_ValidationScriptsPartial”);} }
📊 Secțiunea 3: LINQ (Query vs Method Syntax)
Q: Cum arată sintaxa de interogare (Query Syntax) pentru a filtra cărțile după preț?
A: from b in _context.Book where b.Price > 50 select b;
📊 Secțiunea 3: LINQ (Query vs Method Syntax)
Q: Cum arată sintaxa de metodă (Method Syntax) pentru același lucru?
A: _context.Book.Where(b => b.Price > 50).ToList();
📊 Secțiunea 3: LINQ (Query vs Method Syntax)
Q: Sintaxa pentru a aduce și datele dintr-o tabelă relaționată (Eager Loading)?
A: _context.Book.Include(b => b.Author).ToList();
📊 Secțiunea 3: LINQ (Query vs Method Syntax)
Q: Cum faci o proiecție (selectezi doar anumite coloane într-un obiect nou)?
A: .Select(b => new { b.Title, b.AuthorName }).
🗄️ Secțiunea 4: Entity Framework Core (CLI & Atribute)
Q: Comanda în consolă (Package Manager Console) pentru a crea o migrare?
A: Add-Migration NumeMigrare.
🗄️ Secțiunea 4: Entity Framework Core (CLI & Atribute)
Q: Comanda pentru a aplica migrările pe baza de date?
A: Update-Database.
🗄️ Secțiunea 4: Entity Framework Core (CLI & Atribute)
Q: Sintaxa pentru a marca o cheie primară care să nu fie auto-incrementată?
A:
```csharp
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int ID { get; set; }
🗄️ Secțiunea 4: Entity Framework Core (CLI & Atribute)
Q: Sintaxa pentru a defini o relație Many-to-Many în model?
A: Ambele clase trebuie să conțină o listă către cealaltă: public ICollection<Entitate2> Entitati2 { get; set; }.</Entitate2>
📱 Secțiunea 5: .NET MAUI & XAML
Q: Cum definești un Grid cu 2 coloane (prima auto, a doua ocupă tot restul)?
A: <Grid></Grid>.
📱 Secțiunea 5: .NET MAUI & XAML
Q: Sintaxa pentru Data Binding simplu pe un Label?
A: <label></label>.
📱 Secțiunea 5: .NET MAUI & XAML
Q: Cum navighezi către o pagină în mod asincron (nemodal)?
A: await Navigation.PushAsync(new DetailsPage());.
📱 Secțiunea 5: .NET MAUI & XAML
Q: Sintaxa pentru a defini o cheie primară auto-increment în SQLite (MAUI)? A:
[PrimaryKey, AutoIncrement]
public int ID { get; set; }
📱 Secțiunea 5: .NET MAUI & XAML
Q: Cum verifici conexiunea la internet în cod C# (MAUI)?
A: if (Connectivity.Current.NetworkAccess == NetworkAccess.Internet) { … }.
⚡ Secțiunea 6: Programare Asincronă
Q: Care este semnătura corectă a unei metode asincrone de tip handler în Razor?
public async Task<IActionResult> OnPostAsync() { ... }.</IActionResult>
⚡ Secțiunea 6: Programare Asincronă
Q: Cum salvezi modificările în baza de date asincron?
A: await _context.SaveChangesAsync();.