asp.net-mvc - 当用户在另一个 DropDrownList 中选择取消选项时更新 ASP.NET MVC 中的 DropDrownList

标签 asp.net-mvc ajax

任何人都知道如何使用取决于用户选择的值来填充组合,我必须组合国家和地区,当用户选择国家时,我需要访问数据库并获取该国家/地区的区域,任何人都知道如果可以使用 AJAX,如何做到这一点。

谢谢。

最佳答案

您需要使用特定的 Ajax 库吗?

Ajax.Net 控制工具包具有 Cascading Dropdown为此功能预先构建的控件。

<小时/>

错过了 MVC 部分,在这种情况下,Ajax 控制工具包将无法工作。 jQuery 可能是最好的选择,因为它使 Ajax 非常容易编码,并且 MS 正式支持它与 MVC 框架结合使用。

如果您在站点上创建了 RESTful 服务(应该有大量关于如何执行此操作的文档),您可以通过 jQuery 返回 json 响应,如下所示:

标记:

<select id="opt1">
  <option value='1'>Option 1</option>
  <option value='2'>Option 2</option>
</select>

<select id="opt2" disabled></select>

假设服务将接受“id”作为参数并使用此架构返回一个 json 对象:

[
  { name: 'option1', value: '1'},
  { name: 'option2', value: '2'}
]

您可以将此 JavaScript 添加到页面:

$(function() {
  $('select#opt1').change(function(){
    $.getJSON('/data/myservice',{id: this.value},
      function(response) {
        var options = '';
        for (var i = 0; i < response.length; i++) {
          options += "<option value='" + response[i].value + "'>"
                  +  response[i].name + "</option>";
        }
        $('select#opt2').removeAttr('disabled').html(options);
      });
  });
});

快速解释那里发生的事情; jQuery 代码有点像剥洋葱,所以我会一次讲一个级别:

$(function(){})$(document).ready(function(){}) 的简写,因此它会在就绪事件触发时运行该函数。

$('select#opt1').change(function(){})找到 <select>名为“opt1”并在更改事件触发时运行该函数。

$.getJSON() Ajax 会调用您吗? JSON 响应以字符串形式返回,并且必须解析为 JSON 对象,$.getJSON 会自动为您解析。第一个字段是服务的 url,第二个字段是转换为查询字符串的名称/值对,第三个字段是处理响应的回调函数。

关于asp.net-mvc - 当用户在另一个 DropDrownList 中选择取消选项时更新 ASP.NET MVC 中的 DropDrownList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/417813/

相关文章:

javascript - 检测 Javascript 何时执行完毕

asp.net-mvc - 如何刷新mvc webgrid

c# - “找不到路径 '/favicon.ico' 的 Controller ...”错误

c# - .NET MVC 3 如何循环模型状态错误并强制 ModelState.Valid 或禁用特定错误?

PHP/JQuery - PHP 脚本每 5 秒运行一次,但其中的 jquery 函数仅运行一次

javascript - 无法在 jQuery AJAX 中多次生成点击事件

javascript - 嵌套 AJAX 调用中的变量作用域

jquery - 在 jQuery 中获取多个文本框值 - MVC

jquery - 浏览到目标常见问题解答主题

javascript - 带有 JSON 响应的 jQuery 帖子