Мне нужно перезагрузить страницу на основе выбора значения в раскрывающемся списке в MVC 3.
Мой выпадающий определяется так:
@Html.DropDownListFor(model => model.ID, new SelectList(Model.SchoolBranches, "ID", "Name", Model.ID), new { id = "Branches", name = "Branches"})
Мой сценарий до сих пор определен так:
<script type="text/javascript">
$(function () {
$("#Branches").change(function () {
var selected;
selected = $(this).val();
alert(selected);
// make a call to the Index action passing in the 'selected' value to reload the whole page
});
});
</script>
Мой выбранный идентификатор работает нормально, так как предупреждение показывает правильный идентификатор при изменении. Просто не могу найти ни одного примера, показывающего, как вернуться к действию индекса и отправить новый идентификатор. Все примеры, которые я нашел, показывают частичную страницу или такое обновление, используя ajax. Мне нужно перезагрузить всю страницу.
Спасибо
UPDATE
С помощью @ Брэндона я попробовал эти подходы
<script type="text/javascript">
$(function () {
$("#Branches").change(function () {
var selected;
var url;
selected = $(this).val();
url = '@Url.Action("Index", "School")';
alert(url); //gives /School/Index/55 this is also my current page in my browser address bar
url = '@Url.Action("Index", "School", new {id = ""})';
alert(url); //gives /School
url = '@Url.Action("Index", "School", new {id = ""})' + '/' + selected;
alert(url); //gives /School/41
// window.location = url;
});
});
</script>
Это мой маршрут в global.asax, чтобы вы могли видеть, что у меня нет никаких сумасшедших маршрутов
public static void RegisterRoutes(RouteCollection routes) {
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
//routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
Обновление
Это работает:
url = '@Url.Action("NotIndex", "School", new {id = ""})' + '/' + selected;
Я получаю правильный новый URL-адрес, и действие ударяется с выбранным идентификатором