ASP.NET MVC下拉列表更改触发提交而不使用Javascript

3

在不使用JavaScript的情况下,是否可以通过更改下拉列表中的选择来引起对操作的回发?

我记得在使用ASP.NET Forms下拉列表控件时,有一个属性设置会在更改时引起回发,这是否可以在没有JS的情况下工作?如果可以,该如何实现?

非常感谢, Kohan。

4个回答

6

使用jQuery可以实现PostBack效果。自动回发需要某种形式的JavaScript。即使ASP.NET在后台实现AutoPostBack属性时也使用JavaScript。

<script type='text/javascript'\> 
  $('#dropDown').change(function () {
    $(this).parents('form').submit();
  });
</script>

4

您需要JavaScript以自动发送数据。即使您不必手写它,您仍然需要它。您可以通过某人单击提交按钮的方式进行发布,但不能自动发布。

我认为您所想的是AutoPostBack属性。


回复:AutoPostBack,是的,我是这样做的,如果禁用了Javascript,它不起作用吗? - 4imble
愚蠢的问题,我想说的是如果禁用了JavaScript它会怎么做。默默失败吗? - 4imble
是的,它确实可以这样做。现在这在某种程度上取决于页面。如果您没有办法在触发自动提交后进行提交,则该页面基本上是无用的,但是asp.net会优雅地降级。 - kemiller2002
此外,您可以在<noscript>标签中添加一个按钮,以便没有启用JavaScript的用户可以提交表单。有JavaScript的用户则可以像预期的那样使用它。 - jimplode

1

适用于我的完整脚本

 @Html.DropDownList("Projects", Model.Projects, new { 
 style = "Height: 25px; width: 225px;", 
 onchange = "$(this).parents('form').submit();" })

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接