Javascript jquerychange函数似乎可以工作,但没有做任何事情

Javascript jquerychange函数似乎可以工作,但没有做任何事情,javascript,jquery,asp.net,asp.net-mvc-3,Javascript,Jquery,Asp.net,Asp.net Mvc 3,我有两个带有jquery代码的单选按钮,它们只使用它们选择的选项重建下拉列表。我有下面的代码,它转到了正确的方法,并且构建选择列表的方法工作正常,在方法完成后,dropdownlist项根本不会更改。一切似乎都是正确的,但就是不起作用。有人有什么想法吗 看法 控制器 将html更改为 @Html.RadioButtonFor(m => m.Spacing, "Single", new { @class = "spacing", id="single" }) <label for="s

我有两个带有jquery代码的单选按钮,它们只使用它们选择的选项重建下拉列表。我有下面的代码,它转到了正确的方法,并且构建选择列表的方法工作正常,在方法完成后,dropdownlist项根本不会更改。一切似乎都是正确的,但就是不起作用。有人有什么想法吗

看法

控制器

将html更改为

@Html.RadioButtonFor(m => m.Spacing, "Single", new { @class = "spacing", id="single" })
<label for="single">Single</label>
@Html.RadioButtonFor(m => m.Spacing, "Double", new { @class = "spacing", id="double" })
<label for="double">Double</label>

尝试调试javascript。是否存在任何控制台错误?当发生$'singleSpacingRadio'。更改事件时,$'doubleSpacingRadio'。更改事件也会触发,因此您只需反复执行相同的操作。这怎么可能?它应该只做每一个单独的活动,我想它是一个单选按钮组。当一个被选中时,另一个被取消选中-两者都触发更改事件!我不知道asp.net在这里到底生成了什么-也许你也可以向我们展示生成的html?我尝试了与你编写的代码完全相同的代码,但我发现脚本的语法错误,我是说@sStephenMueckeSorry,在$.getJSON行中遗漏了右大括号我也遗漏了右大括号。我修正了这个问题,这个动作看起来很有效,但现在显示完全错误,当我点击其中一个单选按钮时,它会给我一个下拉列表,每个选项都是完全空白的。我将尝试在此处放置一个屏幕截图抱歉,它应该是.textitem.Name,因为这是NumberOfPages的属性名称非常感谢!你做的事情有点不同,但我现在可以看到它是如何工作的
public ActionResult NumberOfPagesList(string id)
    {
        var numberOfPagesList = from n in NumberOfPages.GetNumberOfPages()
                          where n.Spacing == id
                          select n;

        if (HttpContext.Request.IsAjaxRequest())
        {
            return Json(new SelectList(numberOfPagesList.ToArray(), "numberOfPagesValue", "numberOfPagesName"), JsonRequestBehavior.AllowGet);
        }
        else
        {
            return RedirectToAction("Contact");
        }
    }

public class NumberOfPages
{
    public string Name { get; set; }
    public string Value { get; set; }
    public string Spacing { get; set; }

    public static IQueryable<NumberOfPages> GetNumberOfPages()
    {
        return new List<NumberOfPages>
        {
            new NumberOfPages
            {
                Name = "1 Page (Approx. 550 Words)",
                Value = "1",
                Spacing = "Single"
            },
            new NumberOfPages
            {
                Name = "1 Page (Approx. 275 Words)",
                Value = "1",
                Spacing = "Double"
            },
            new NumberOfPages
            {
                Name = "50 Pages (Approx. 13750 Words)",
                Value = "50",
                Spacing = "Double"
            }
        }.AsQueryable();
    }
@Html.RadioButtonFor(m => m.Spacing, "Single", new { @class = "spacing", id="single" })
<label for="single">Single</label>
@Html.RadioButtonFor(m => m.Spacing, "Double", new { @class = "spacing", id="double" })
<label for="double">Double</label>
$('.spacing').click(function() {
  var select = $("#numberOfPagesList");
  select.empty().append($('<option></option>').val('').text('--Test--'));
  var url = '@Url.Action("NumberOfPagesList", "Home")';
  $.getJSON(url, { id: $(this).val() }, function (data) {
    $.each(data, function (i, item) {
      select.append($('<option></option>').val(item.Value).text(item.Name));
    });
  });
});
return Json(numberOfPagesList, JsonRequestBehavior.AllowGet);