Używasz niewłaściwego przeciążenia metody ActionLink
. należy używać:
@Html.ActionLink("Test", "Foo2", "Home", new { uId = 12 }, null)
To przeciążenie zinterpretuje new { uId = 12 }
być używane jako wartości trasy, a nie jako atrybutów HTML. Przeciążenie, z którego korzystasz, polega na interpretacjijako obiektu z atrybutami TML łącza akcji. Wywołując powyższe przeciążenie, jako parametr piąty podajemy null
, który będzie teraz używany dla atrybutów HTML i obiektu jako wartości trasy.
Możemy łatwo zobaczyć, co się dzieje, patrząc na to, co dostaje renderowane:
@Html.ActionLink("Test", "Foo2", "Home", new { uId = 12 })
// Renders: <a href="/Home/Foo2?Length=4" uId="12">Test</a>
@Html.ActionLink("Test", "Foo2", "Home", new { @class = "test-class" })
// Renders: <a class="test-class" href="/Home/Foo2?Length=4">Test</a>
@Html.ActionLink("Test", "Foo2", "Home", new { uId = 12 }, null)
// Renders: <a href="/Home/Foo2?uId=12">Test</a>
@Html.ActionLink("Test", "Foo2", "Home", new { uId = 12 }, new { @class = "test-class" })
// Renders: <a class="test-class" href="/Home/Foo2?uId=12">Test</a>
Nadzieja to ściąga go trochę.
to działa, dziękuję – gurehbgui
@gurehbgui Nie ma za co. –