Przekazanie wartości z widoku do kontrolera

0

Witam, mam problem z przekazaniem wartości z widoku do kontrolera mianowicie:

Widok

<form action="/Kontroler/TestIndex" method="post">
    <input type="text" name="textBoxStringData" />
    <input type="checkbox" name="checkboxData" />
    <input type="number" name="textBoxIntData" />

    <input type="submit" value="Submit " />
</form>

Kontroler:

 [HttpPost]
        public ActionResult TestIndex(string textBoxStringData, int textBoxIntData, string checkboxData)
        {
            return View();
        }

Jak odpalam powyższy kod otrzymuje:

Błąd serwera w aplikacji '/'.
Nie można znaleźć zasobu.

0

Sprawdź w narzędziach developerskich pod jaki adres próbuje tego posta wysłać. Zapewne parametr form action masz niepoprawny i kieruje akcję pod nieistniejący URL.

0

Dzięki za podpowiedź. Tak wygląda mój RoutConfig standardowo:


public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }

Jeśli mam akcje

<form action="/Kontroler/TestIndex" method="post">

powinno wysłać do kontrolera "Kontroler" i akcji TestIndex

public ActionResult TestIndex(string textBoxStringData, int textBoxIntData, string checkboxData)

Jak moge sprawdzić w visual studio gdzie Post wysyła akcje, pod jaki URL ?

0

Ale checkbox dale wartoś bool tj. true lub false więc może zmień kontroler na
public ActionResult TestIndex(string textBoxStringData, int textBoxIntData, bool checkboxData)

0

Sprawdź to narzędziami przeglądarki, przez VisualStudio się nie da.
Na mój gust to nazwa klasy Twojego kontrolera nie ma sufiksu Controller, więc zwyczajnie framework go nie znajduje.

W ogóle po co piszesz HTML ręcznie zamiast użyć helperów?

1 użytkowników online, w tym zalogowanych: 0, gości: 1