IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Jiří Otruba:6.3.2021 16:20

Nefunguje mi událost(event) "onchange" správně a to pro element "select"
Controller:

public class HomeController : Controller
    {
        [HttpGet]
        public IActionResult Index(int Id)
        {
            LangTest oLang = new LangTest();
            oLang.evChangeLang(Id);
            return View(oLang);
        }

        [HttpPost]
        public IActionResult Index(LangTest inLang)
        {
            return View(inLang);
        }
    }

Model:

public class C_Language
    {
        public int m_Id { get; set; }
        public string m_Text { get; set; }
    }

    public class LangTest
    {
        public LangTest()
        {
            m_CurLang = 0;

            m_LangList = new List<C_Language>();
            m_LangList.Add(new C_Language { m_Id = 0, m_Text = "English" });
            m_LangList.Add(new C_Language { m_Id = 1, m_Text = "Czech" });

            m_LangSelectList = new SelectList(m_LangList, "m_Id", "m_Text");
        }

        public void evChangeLang(int Id)
        {
        }

        public int m_CurLang { get; set; }
        public List<C_Language> m_LangList { get; set; }
        public SelectList m_LangSelectList;
    }

View:

@model LangTest

<div class="row">
    <div class="col-md-4">
        <form asp-controller="Home" asp-action="Index">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <div class="form-group">
                <select asp-for="m_CurLang" asp-items="@Model.m_LangSelectList" onchange="location.href='@Url.Action("Index", "Home", new { id = Model.m_CurLang})'"></select>
            </div>
        </form>
    </div>
</div>

@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

Metoda HomeController::In­dex(int Id) se správně zavolá když v elementu select vyberu nějaký jazyk, ale parametr Id má vždy hodnotu nula.Nevím jak správně zapsat ve view událost "onchange"
Toto mi nefunguje, pošle se vždy prvek s indexem nula, a to ikdyž vyberu jazyk "Czech", tedy prvek s indexem jedna.
onchange="loca­tion.href='@Ur­l.Action("Index", "Home", new { Id = Model.m_CurLan­g})'"
Nevím jak získat právě vybraný prvek z elementu select.
Abych mohl zapsat new { Id = "právě vybraný prvek"}

Zkusil jsem: Pokouším se poslat událost "onchange" do odpovídajícího Controlleru.

Chci docílit: Jedná se pouze o testování, učím se ASP NET Core.

 
Odpovědět
6.3.2021 16:20
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 1 zpráv z 1.