TOC

This article has been localized into Hungarian by the community.

HttpContext:

Űrlapok (POST adat)

Az előző cikkben megvizsgáltuk, mi az a query string és hogyan olvashatunk be belőle paramétereket. Ez többnyire egy úgynevezett GET kérés során történik, ami többnyire akkor keletkezik, amikor a felhasználó beüt egy URL-t a böngészőjébe vagy rákattint egy linkre. A GET kérés ellenpárjaként létezik a POST kérés. Egy POST kérés általában akkor történik, amikor a felhasználó egy űrlapot (FORM-ot, például kapcsolattartási űrlapot vagy bejelentkezési űrlapot) küld be. Ellentétben a GET kéréssel, ahol a bejövő adat látható a URL-ből, a POST kérés során nincs a felhasználó számára is látható információ. Emiatt a HttpContext osztály másik tulajdonságát kell használnunk POST adathoz való hozzáféréskor: a Form tulajdonságot.

ASP.NET MVC-ben az űrlapokat leggyakrabban úgy kezeljük, hogy hozzákötjük a modellt. Ez azt teszi, hogy az űrlap minden mezője egy modellen lévő tulajdonsághoz van kötve, ezzel az űrlap nem csak olvasni, de írni is tudja azt, amikor a felhasználó beküldi az űrlapot. Ezt modellkötésnek nevezzük, és máshol taglaljuk ezt, ebben a cikkben régimódian fogunk az űrlapadatokhoz hozzáférni.

Hozzáférés űrlapadathoz

A Form tulajdonság sok tekintetben úgy működik mint a Query tulajdonság - egyfajta szótárként szolgál, kulcsokkal és értékekkel. Amikor egy POST kérés jön be a vezérlőbe, például űrlap beadása esetén, minden beérkező mező hozzáadódik a Form szótárhoz. Itt a mezők neve a kulcs, azok értéke pedig a kulcshoz tartozó értékké válik. Ezt szeretném egy példával illusztrálni:

<form method="post" action="/Home/FormsTestPost">  
<label for="txtName">Your name:</label>  
<input type="text" id="txtName" name="UserName" />  

<label for="txtAge">Your age:</label>  
<input type="number" id="txtAge" name="UserAge" />  

<button type="submit">Submit</button>  
</form>

Ez egy egyszerű HTML űrlap. Láthatod, hogy a method tulajdonságot POST-ra állítom - az űrlapok támogatják a GET kéréseket is, de szinte mindig jobb a POST lehetőséget használni.

A vezérlőm ezúttal így néz ki:

public class HomeController : Controller  
{  
[HttpGet]  
public IActionResult FormsTest()  
{  
return View();  
}  

[HttpPost]  
public IActionResult FormsTestPost()  
{  
return Content("Hello, " + HttpContext.Request.Form["UserName"] + ". You are " + HttpContext.Request.Form["UserAge"] + " years old!");  
}  
}

Az Form szótár értékeihez a nevük használatával tudok hozzáférni (UserName és UserAge, ugyanúgy, ahogy a mezőket is neveztem az űrlapon).

Összefoglalás

A HttpContext osztálynak és Form tulajdonságának köszönhetően az űrlap/POST adatok könnyen hozzáférhetőek ASP.NET MVC-ben. Használata többnyire nem szükséges a modellkötésnek hála, de pár esetben azért hasznos lehet.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!