W ASP.NET MVC Używam pomocnika HTMLJak przekazać identyfikator za pomocą funkcji Html.BeginForm()?
Html.BeginForm("ActionName", "Controller", FormMethod.Post);
Ale muszę pisać do:/kontroler/działania/23434
Jak mogę przekazać w ID?
W ASP.NET MVC Używam pomocnika HTMLJak przekazać identyfikator za pomocą funkcji Html.BeginForm()?
Html.BeginForm("ActionName", "Controller", FormMethod.Post);
Ale muszę pisać do:/kontroler/działania/23434
Jak mogę przekazać w ID?
Matt powinny działać prawidłowo. Jeśli nadal przekazując FormMethod.Post
, choć trzeba to zrobić tak:
Html.BeginForm("action","controller", new { Id = 12345 }, FormMethod.Post);
cofania parametry trzeci i czwarty spowoduje Id
traktowane jako atrybut zamiast wartości trasy.
Html.BeginForm("action", "controller", new {Id = 12345})
to nie działa, dodaje atrybut do znacznika formularza. – mrblah
sprawdź nazwę parametru routeValues - upewnij się, że używasz tego nie htmlAttributes. –
Html.BeginForm("action", "controller", new { id = ViewBag.FileID },
FormMethod.Post, new { id = "feedbackform" })
Jak dla kwerendy, ?type=golden
, nie wiem jak to zrobić. Oczywiście, querysting to zdobycie i podważa cały cel FormMethod.Post
. Chodzi mi o to, że możesz użyć FormMethod.Get
, jeśli chcesz dane o kursie, a to może być to, czego szukasz.
Dodatkowo można uniknąć html.beginform
i zrobić zapytanie, uzyskać + wysłać, ręcznie za pomocą znacznika formularza.
Po trzecie, jeśli są za pomocą formularza można dokonać ukryte pole:
[input type=hidden name="type" value="golden"]
Następnie, gdy zostanie naciśnięty przycisk submit wartość jest przekazywana jako zmienna poprawnie formularz.
Tracę istniejące wartości trasy, gdy używam tej metody. Powiedzmy, że mój adres URL to '/ controller/action? Type = golden', celem formularza (używając swojej drogi) staje się teraz'/controller/action/12345', podczas gdy ja chcę, żeby to był '/ controller/action/12345? Type = golden '. Czy znasz sposób, w jaki mogłem zachować istniejące wartości trasy i dołączyć również własną? –
@Aki Spróbuj dodać 'type' jako ukryte pole w formularzu i powinno zostać wysłane razem. –
Mogę, ale widzisz, że to nie mój problem. Nie jest konieczne, aby w łańcuchu zapytań miałem tylko 'type', mógłbym mieć N parametrów, które mogą się różnić w różnych akcjach. Byłoby prawdziwym bólem przejść do wszystkich tych działań i dodać parametry zapytania jako ukryte pola. –