Diskuze: ASP teorie
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Nevim zda jsem to pochopil spravne, ale kdyz odesilas formular (POST z strongly typed view), tak ten objekt odesilas kontroleru do metody post a tam s tim muzes pracovat.
O správné předání parametrů se stará routování
https://www.miroslavholec.cz/…routing-uvod
takže, pokud mám dvě tabulky (třídy) kde jedna je cizím klíčem u druhé, například ČLÁNEK a KOMENTÁŘ
článek obsahuje komentáře..
a pokud já teda dojdu na konkrétné článek a chci u něj udělat třeba
edit metodu nějakou..
jsem na routu KONTROLER1/clanek/detail/1 - OK, rozumim proč vím na jakém
článku jsem, id se prostě někde spáruje s formulářem
jak je ale možný, že pokud se skrze ten detail proklikám do editu toho
komentáře, někam na
adresu KONTROLER1/edituj/idKomentare , že pokud mám v parametru metody pro
editaci Clanek clanek,
tak ta metoda ví, na jakém Id článku zrovna jsem
jak je to možný?
jak můžu na žákladě parametru ActionResult Edit (Clanek clanek)
získat clanek.Id.. když se vlastně vůbec na žádný hře (dle url) nenacházim
*
[HttpPost]
[ValidateAntiForgeryToken]
[Authorize]
public ActionResult CreateUserReview(AspNetUsers aspUser, Games game, Reviews review)
{
if (ModelState.IsValid)
{
review.Game_Id =** game.Id;**
review.User_Id = User.Identity.GetUserId();
review.Created_At = DateTime.Now;
_entitiesUser.Reviews.Add(review);
_entitiesUser.SaveChanges();**
jak je možný že proběhne správně tohle?
review.Game_Id =** game.Id;**
game by měl být jen prázdný parametr pro budoucí naplnění typem Games, jaktože zná Id hry?
Ty ve View naplnis objekt "game" vlastnostmi pomoci formulare a nasledne ten objekt posles z GET metody CreateUserReview do POST metody CreateUserReview, metoda prijme nekolik parametru, kde konkretne Games game obsahuje vlastnosti (naplnene pole) z View.
nenene, to se právě nechápeme
game je instance třída Games
review je instance třídy Review
mě zkrátka v kodu funguje to, že mi typová create metoda třídy Review automaticky ví ke které instanci Games patří a je mi záhadou proč
já zkráttka dojdu na detail Games a na něm chci editovat komentář třídy Review..
mas
GameId
GameName
Game..blabla
a pak
ReviewID
ReviewGameId (cizí klíč)
a jediný co mě napadá, pak to, že pokud znám konkrétní review, pak zároveň znám review.gameId (aneb ke které hře patří)
jen nevím jak se tahle spojitost automaticky přenese do public ActionResult CreateUserReview(AspNetUsers aspUser, Games game, Reviews review)¨
jak je zkrázka možný že Games game parametr není NULL ale obsahuje v sobě korektní hru
Vzdyt ti to pisu, kdyz odesles formular, tak ID, Name, Blabla, je ulozeno v game jako vlastnost, takze k tomu muzes pristupovat game.GameId, game.GameName, atd...
Pokud hledas jak funguje binding, tak se podivej zde:
http://www.dotnetportal.cz/clanek/8479/asp-mvc-from-zero-to-hero-4-MVC-architektura-view-viewmodel-controller-razor
A pokud jsem se ani tentokrate netrefil, tak nechapu dotaz.
Zobrazeno 9 zpráv z 9.