Hirdetés
- Android szakmai topik
- Poco F8 Ultra – forrónaci
- Yettel topik
- iPhone topik
- Samsung Galaxy S20 és S20+ duplateszt
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Milyen okostelefont vegyek?
- One mobilszolgáltatások
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Xiaomi 15T Pro - a téma nincs lezárva
Új hozzászólás Aktív témák
-
ubid
senior tag
Sziasztok!
Ismét egy kis segítséget szeretnék kérni = ) Kicsit bonyolultabb elmagyarázni, de remélem megértitek mi a problémám, és tudtok segíteni is !
Előre is köszönöm !Tehát :
Egy asp.net mvc3 webalkalmazás darabját készítem jelenleg. A feladat : Események létrehozása, majd miután létrehoztuk az eseményeket visszadob egy lapra, ahol az események listája látszik. minden eseményhez van egy link, ami tulajdonképpen a details- lapja, viszont ott alatta lehet kommentelni az adott eseményt. ( természetesen mindent adatbázisba mentünk le az eseményeket az események táblába, a kommenteket a komment táblába, viszont kapcsolat nem lehet közöttük, mert az alkalmazás során máshova is kell majd kommentelni )
Ezt , hogy oda varázsolja a komment felületet egy a details view-ba varázsolt RenderAction-el oldottam meg.
így : @{Html.RenderAction("CommentCreate", "Comment");}Mivel a details lapon van a kommentelő felület ( ide listázza ki, és alatta van egy form is, ahol beírható a komment és küldhető ) ezért nyilván ide is postol vissza, ezért ennek a controllerébe ( jelen esetben ez az event controller ) írtam a details-hoz egy HTTP-s actionresult-ot, aminél kezdődik a gond.
Az a problémám, hogy valamiért az event ID-jét egyből belenyomja nekem kérés nélkül a komment ID-jába, amitől nyilván több kommentet nem is vihetek fel, mert ütközés van.
( a kommentnek van egy TARGETID-ja ami nem egyedi, én ebbe szeretném, hogy megjelenjen az adott esemény ID-ja abból a célból, hogy minden esményhez csak a hozzá tartozó kommenteket listázza ki )A kód így néz ki : public ViewResult Details(int id,Comment newComment)
ebben ugye azért írtam be az ID-t mert szeretném , hogy a TARGETID-ba majd ez bekerüljön ( ez így rendben is van szerintem, mert az URL-be már úgyis benne van az esmeényünk ID-ja , ezáltal bele is tudom rakni a TARGETID-ba.
Viszont a sima ID ( aminek csak akkor kéne értéket kapnia amikor mentődik az adatbázisba, mivel ott számolódik ki (PK) )a kód további része így néz ki :
{
newComment.Added = DateTime.Now;
MembershipUser currentUser = Membership.GetUser();
Guid userId = new Guid(currentUser.ProviderUserKey.ToString());
newComment.UserID = userId;
newComment.TargetID = id;
db.Comments.AddObject(newComment);
db.SaveChanges();
return View();
}Mutatok egy képet is, hogy lássátok miről beszélek :

Tehát látható, hogy még a db save-ig el se jutott, de már ott felvette azt az ID-t ami nem is az övé lénne.
A partial-view-nak pedig így néz ki az érdemi része :
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.TargetID)
</td>
<td>
@Html.DisplayFor(modelItem => item.TargetType)
</td>
<td>
@Html.DisplayFor(modelItem => item.Text)
</td>
<td>
@Html.DisplayFor(modelItem => item.UserID)
</td>
<td>
@Html.DisplayFor(modelItem => item.Added)
</td>
<td>
@Html.ActionLink("Delete", "Delete", new { id=item.ID })
</td>
</tr>
}
</table>
@using (Html.BeginForm())
{
<textarea rows="5" cols="30" id="text" name="text"></textarea>
<input type="submit" value="Küldés" />
}Aki tud segítsen , hogy miért lehet ez.
Előre is köszönöm!
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- AKCIÓ! MSI Claw A1M 512GB SSD kézikonzol garanciával hibátlan működéssel
- iPhone 13 128GB 100% Green (1év Garancia) - ÚJ EREDETI AKKUMULÁTOR - AKCIÓ
- Magyar, Aktiválatlan! Apple MacBook Pro 14! M3, 8GB, 500GB! BeszámítOK
- Gamer PC-Számítógép! Csere-Beszámítás! R5 3600X / GTX 1080Ti 11GB / 16GB DDR4 / 512 Nvme SSD
- ÁRGARANCIA!Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

