Próbuję przekazać zmienną łańcuchową wewnątrz asp.net MVC. Używam punktów przerwania, więc widzę, że trafiają one do poprawnej metody w kontrolerze, ale opublikowane zmienne są równe zeru.Przekazywanie zmiennych za pomocą POST w ASP.NET MVC
Moja markup:
@{
ViewBag.Title = "TestForm";
}
<h2>TestForm</h2>
@using (Html.BeginForm()) {
<input type="text" id="testinput" />
<input type="submit" value="TestForm" />
}
Mój kontroler:
public ActionResult TestForm()
{
return View();
}
[HttpPost]
public ActionResult TestForm(string testinput)
{
Response.Write("[" + testinput + "]");
return View();
}
umieścić punkt przerwania wewnątrz drugiej metodzie TestForm i testinput jest null .... Am I czegoś brakuje?
Uwaga: zdaję sobie sprawę, że przez większość czasu będę używać modelu do przekazywania danych, ale chciałbym wiedzieć, że mogę również przekazywać ciągi znaków.
W ramach tego samego pytania, w jaki sposób przekazać kilka zmiennych? Czy metoda w moim kontrolerze wygląda następująco:
[HttpPost]
public ActionResult TestForm(string var1, var2)
{
}
Tak to działało hmmmm!. dlaczego MS zdecydowało się polegać na nazwisku, a nie ID? dlaczego zawsze robią to od tyłu? Ale dzięki! – sarsnake
Nie, Microsoft naprawdę świetnie radzi sobie z mvc, nie myśl o tym na temat Microsoftu. To jest o standardach internetowych. Zasadniczo właściwość id służy do zastosowania javascript (getElementsById, CSS-StyleSheets, jQuery i innych). Właściwość name odnosi się do postów i rzeczy asynchronicznych (opartych na danych). – dknaack
W zwykłej formie html nigdy nie musiałem określać właściwości name, identyfikator zawsze był wystarczający i zmienne zostały pomyślnie przesłane. – sarsnake