Diskuze: Přenesení ID z url do c# kódu
V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 8 zpráv z 8.
V předchozím kvízu, Online test znalostí HTML a CSS, jsme si ověřili nabyté zkušenosti z kurzu.
To je jednoduché. Stačí postavit SQL dotaz.
SELECT * FROM users WHERE user_id = ?, $id
Pokud potřebuješ poradit ohledně samotné MVC architektury, hodil by se zdrojový kód.
Dobrý den,
SQL kód už mám napsaný teď jen potřebuji z tohoto:
// GET: Displayer/Info
public ActionResult Info(int id)
{
return View();
}
získat id, tak abych ho pak mohl dát do cshtml:
public int id =
Teď moc nechápu, jak to myslíš. Ale potřebuješ předat ten parametr do View. Vůbec nevím, jak máš napsaný model uživatele. Chtělo by to Model uživatele, alespoň tu metodu, která získává id uživatele a pak příslušný kontroler.
Model jsem nepochopil k čemu má být, protože mám všechno info v databazi, ale jetli je potřeba, tak bych to prvně zkusil vymslet sám. Jen jsem doufal, že by to šlo bez toho. Omlouvám se pokud je to amaterská chyba, dostal jsem brigádu na c# a snažím se ještě volnočasově doučit cshtml.
Aha, tak teď už je mi to jasné. MVC (Model, View, Controller) architektura bez modelu opravdu nefunguje. Doporučuji projít si místní tutoriály C#. NET Core nebo ASP .NET MVC
Niz popisu php prikazy (neni to c#)
Mno, pokud tam mas databazi, tak nekde mas nejaky takovy kod (bez dalsiho info,
prohlidnuti kodu se da realna situace jen tezko odhadnout, kazdy pise kod
jinak):
$id = isset($_GET['id']) ? $_GET['id'] : ''; // ziskani id z prikazoveho radku
$result = sql("SELECT * FROM stranky WHERE stranka_id = ?", $id); // sql dotaz na db pro ziskani stranky
$row = sql_fetch($result); // zformatovani dat z sql do array $row
echo $row['text'];
echo $row['id']; // ziskani a vypsani id z SQL
No, takze, to, co chces, je tam v podstat uz na zacatku $id.
v htaccess mas nejspis nastavene prepisovani adresy z
/Displayer/Info/1 na
index.php?path=Displayer/Info/&id=1
// Nebo neco takoveho... Je to to same jako v html kodu mit
<a href="index.php?path=Displayer/Info/&id=1">odkaz</a> nebo
<form method=get action="index.php"><input name=path value="..."><input name=id value="1"></form>
// V php z toho ziskas id prave pomoci
$id = isset($_GET['id']) ? $_GET['id'] : '';
Mno, ale kdyby jsi to chtel ziskat primo v html, obejit server, v tomto
pripade by to slo. Jenom bych to nevidel jako spravne reseni. myslim si, ze
potrebujes spis ziskat na serveru id stranky a pak jej vypsat.
U uzivatele je mozne ziskat id pomoci javascriptu. Je to trochu slozitejsi, ale
jde to.
google = javascript location
https://developer.mozilla.org/…API/Location
<script>
var str, arr;
str = location.pathname // "/Displayer/Info/1"
arr = str.split('/'); // rozdel retezec podle lomitek ["", "Displayer", "Info", "1"]
alert(arr[arr.length-1]) // ziskej posledni polozku pole "1"
</script>
On měl špatně celou architekturu. Chtěl použít MVC a předat něco pohledu z kontroleru, ale kontroler to samozřejmě nemá kde vzít, když nemá žádný model. Navíc by měl použít ORM pro práci s databází a to je zase Entity Framework, kde se nepracuje s SQL. Celá jeho myšlenka získat id uživatele z URL byla tedy chybná.
Zobrazeno 8 zpráv z 8.