gpt4 book ai didi

asp.net-mvc - 如何从Ajax表单中在asp.net mvc中提交下拉列表

转载 作者:行者123 更新时间:2023-12-03 11:33:18 25 4
gpt4 key购买 nike

您如何从ajax表单内部的下拉列表“onchange”事件中提交?

根据以下问题:How do you submit a dropdownlist in asp.net mvc,从Html.BeginFrom内部可以设置onchange =“this.form.submit”并更改下拉列表。

但是,使用以下代码(在Ajax.BeginFrom内部):

<% using (Ajax.BeginForm("UpdateForm", new AjaxOptions() { UpdateTargetId = "updateText" })) { %>
<h2>Top Authors</h2>

Sort by:&nbsp;<%=Html.DropDownList("sortByList", new SelectList(ViewData["SortOptions"], new { onchange = "this.form.submit()" })%>

<%= Html.TextBox("updateText")%>
<% } %>

回发到 Controller 操作,但是整个页面将替换为“updateText”文本的内容,而不仅仅是“updateText”文本框中的内容。

因此,整个页面将被替换,而不仅仅是替换Ajax.BeginForm内部的区域。

下拉列表调用this.form.submit以便仅在Ajax.BeginForm内部的区域的正确方法是什么?

最佳答案

好的,将近2年后,您可能不再在乎了。谁知道:也许其他人(例如我;-)愿意。

因此,这是(极其简单)的解决方案:

在您的Html.DropDownList(...)通话中,更改

new { onchange = "this.form.submit()" }


new { onchange = "this.form.onsubmit()" }

您看得出来差别吗? ;-)

原因是 Ajax.BeginForm()使用 onsubmit()处理程序创建了一个表单以异步提交表单。通过调用 submit(),可以绕过此 onsubmit()自定义处理程序。调用 onsubmit()对我有用。

关于asp.net-mvc - 如何从Ajax表单中在asp.net mvc中提交下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/367349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com