Как использовать каскадный выпадающий список с глобализацией представлений в MVC3 - PullRequest
2 голосов
/ 15 марта 2011

Я делаю решение asp.net mvc с глобализацией.

Я реализовал глобализацию с использованием файлов ресурсов (Resources.fr.resx & Resources.nl.resx) и

routes.MapRoute(
                    "Default",
                    "{language}/{controller}/{action}/{id}",
                    new { language="Nl", controller = "Home", action = "Index", id = UrlParameter.Optional },
                    new { language ="Nl|Fr" }
                );

Теперь я хочу сделать 2 каскадных выпадающих списка, примерно так:

$('#ddl_Author').change(function () {
    var ddlsource = "#ddl_Author";
    var ddltarget = "#ddl_Books";

    $.getJSON('@Url.Action("Books")', { authorId: $(ddlsource).val() }, function (data) {
                $(ddltarget).empty();
                $.each(data, function (index, optionData) {
                    $(ddltarget).append("<option value='" + optionData.Value + "'>" + optionData.Text + "</option>");
                });
            });
});

Мой вопрос заключается в том, что я должен использовать в качестве URL, '@ Url.Action ("Книги") ", похоже, не работает ...

А это мой контроллер:

public ActionResult Books(int authorId)
{
     var books = _bookService.GetBooks(authorId);
     ...
     return Json(books.ToList(), JsonRequestBehavior.AllowGet);
}

Ответы [ 2 ]

3 голосов
/ 15 марта 2011

Вам необходимо указать язык, так как он не является необязательным параметром в вашем маршруте:

@Url.Action("Books", new { language = "Fr" })
0 голосов
/ 27 августа 2012

@ Дарин Димитров

Следует ли отдавать предпочтение этому методу по сравнению с тем, в котором локализация раскрывающегося списка выполняется с использованием XMLDataSource?

...