0

我正在尝试发回 categoryId 并使用新的强类型对象更新页面。出于某种原因,cateogryId 以 null 的形式出现...

$(function () {
    $('#hhh').change(function () {
        var url = $(this).data('url');
        var categoryId = $(this).val();
        $.ajax({
            url: url,
            type: 'GET',
            cache: false,
            data: { categoryId: categoryId },
            success: function (result) {
                // TODO: manipulate the result returned from the controller action
            }
        });
    });
});

<h2>Index</h2>
@Html.ActionLink("Create New Listing", "Create")
<br/>
<strong>Filter Listings</strong>
@Html.DropDownListFor(
    m => m.SelectedCategoryGuid, 
    Model.Categories, 
    "Select a Category", 
    new {
        id = "hhh",
        data_url = Url.Action("SortListing", "Listing") 
    }
)

控制器代码:

public ActionResult SortListing(string categoryGuid)
    {
        var listingCategory = new ListingCategory();
        listingCategory.Id = _tourismAdminService.GetByGuid<ListingCategory>(Guid.Parse(categoryGuid)).Id;
        var listings = new List<Listing>();

        foreach (var listing in _tourismAdminService.ListAllEntities<Listing>())
        {
            if (listing.CategoryId == listingCategory.Id)
            {
                listings.Add(listing);
            }
        }

        return RedirectToAction("Index", "Listing", listings);
    }
4

2 回答 2

2

啊,这有帮助。将您的 javascript 更改为:

$(function () {
    $('#hhh').change(function () {
        var url = $(this).data('url');
        var categoryId = $(this).val();
        $.ajax({
            url: url,
            type: 'GET',
            cache: false,
            data: { categoryGuid: categoryId },
            success: function (result) {
                // TODO: manipulate the result returned from the controller action
            }
        });
    });
});

请注意,我更改了data: {...}您的 javascript 中的行。您希望将data行中的参数名称与 Action 方法中的参数匹配,以使绑定起作用。

于 2012-09-18T19:13:21.517 回答
1

您的操作方法需要一个名为的参数categoryGuid,但您传递的参数名称与您的 ajax 代码不同。在您的 javascript 代码中,更改

 data: { categoryId: categoryId },

data: { categoryGuid: categoryId },
于 2012-09-18T19:14:09.580 回答