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

标签 asp.net-mvc drop-down-menu ajax.beginform

您如何从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/

相关文章:

php - 尝试根据下拉列表结果运行 SELECT sql 查询。 MySQL PHP

javascript - Ajax.BeginForm 标识 OnComplete 方法中单击了哪个按钮

asp.net-mvc - Ajax.BeginForm 总是触发 OnSuccess 方法,即使数据是坏的

javascript - Ajax .BeginForm 在 IE9 中返回空白 View

c# - 如何使用 c# .net 核心 Entity Framework 执行连接

asp.net-mvc - 刷新和压缩过滤器 (ASP.NET MVC)

c# - Jquery ajax 完整未获取自定义响应 header ?

html - Bootstrap 导航栏链接宽度意外扩大

javascript - Jquery Ajax 调用未命中操作方法/返回整个 HTML 页面

json - knockout JS : how to set the initial value from a dropdown list when data is retrieved asynchronously using JSON?