C# 如何根据以前的选择筛选下拉列表

C# 如何根据以前的选择筛选下拉列表,c#,asp.net-mvc,asp.net-mvc-3,C#,Asp.net Mvc,Asp.net Mvc 3,我有两个表,即State和Country。这两个是我的视图页面中的下拉列表。 我使用一个独立的查询来显示它们中每一个的下拉值。 在表状态中,我有stateid和countryid。 我需要根据国家选择筛选州值。 我甚至有一个名为table的主表,它由state和country的id组成 以下是我过去的展示方式 enter code here //获取状态值的步骤 var query = (from i in dbContext.countries j

我有两个表,即State和Country。这两个是我的视图页面中的下拉列表。 我使用一个独立的查询来显示它们中每一个的下拉值。 在表状态中,我有stateid和countryid。 我需要根据国家选择筛选州值。 我甚至有一个名为table的主表,它由state和country的id组成 以下是我过去的展示方式

enter code here
//获取状态值的步骤

var query = (from i in dbContext.countries

                     join j in dbContext.States on i.Country_id equals j.Country_id

                     where j.State_id >= 0
                     select new
                     {
                         state = j.State_name}).ToArray//To get state values
在这里输入代码

  var str = (from li in dbContext.countries

                           where li.Country_id >= 1
                           select new
                           {

                               country = li.Country_name}).ToArray();//To get country
价值观

以及如何使用主表“table”中的值进行过滤查询。我在编写过滤查询时遇到了一个问题 这可以使用linq查询吗? 请告诉我怎么做
谢谢

这可以通过不同的方式实现。一种方法是,当第一个下拉列表更改时,让服务器通过Ajax返回有效选项的过滤列表

例如,假设这个场景:一个有两个DropDownLists的视图;一个是国家,另一个是国家。带有状态的下拉列表为空,默认情况下禁用,直到选择国家/地区

因此,您可以在控制器中执行以下操作:

public ActionResult Index()
{
    ViewBag.Country = new [] {
        new SelectListItem() { Text = "Venezuela", Value = "1" },
        new SelectListItem() { Text = "United States", Value = "2" }
    };
    return View();
}
这种观点:

<div class="editor-field">
    @Html.DropDownList("Country")
    @Html.DropDownList("State", Enumerable.Empty<SelectListItem>(), "States", new { @disabled = "disabled" })
</div>
最后一件事是客户端代码。本例使用jQuery并在country下拉列表上设置一个change event listener,它通过Ajax调用新的控制器操作。然后,它使用返回的值更新“状态”下拉列表

$(document).ready(function () {
    $('#Country').change(function () {
        $.ajax({
            url: '/Home/StatesByCountry',
            type: 'POST',
            data: { countryId: $(this).val() },
            datatype: 'json',
            success: function (data) {
                var options = '';
                $.each(data, function () {
                    options += '<option value="' + this.id + '">' + this.state + '</option>';
                });
                $('#State').prop('disabled', false).html(options);
            }
        });
    });
});
$(文档).ready(函数(){
$('#Country')。更改(函数(){
$.ajax({
url:“/Home/StatesByCountry”,
键入:“POST”,
数据:{countryId:$(this.val()},
数据类型:“json”,
成功:功能(数据){
var选项=“”;
$。每个(数据、函数(){
选项+=''+此.state+'';
});
$('#State').prop('disabled',false).html(选项);
}
});
});
});

您好,这很好,但是在每个表都有具有唯一Id的td单元格的表行中,我该如何执行此操作。或者,在表行中,我该如何获得相同的行列列选定值,即上一个选定值以执行筛选
$(document).ready(function () {
    $('#Country').change(function () {
        $.ajax({
            url: '/Home/StatesByCountry',
            type: 'POST',
            data: { countryId: $(this).val() },
            datatype: 'json',
            success: function (data) {
                var options = '';
                $.each(data, function () {
                    options += '<option value="' + this.id + '">' + this.state + '</option>';
                });
                $('#State').prop('disabled', false).html(options);
            }
        });
    });
});