У меня есть следующий раскрывающийся список для фильтрации результатов на основе выбранного курса. Следующий div копируется в 5 разных представлений, так как во всех этих представлениях мне нужно отфильтровать некоторые данные на основе выбранного курса из выпадающего списка.Использование Partial View и Jquery для включения выделения из одного и того же выпадающего списка в разных представлениях
<div class="row">
<div class="col-sm-8 text-center">
@Html.DropDownList("Courses", null, htmlAttributes: new { @class = "form-control" })
</div>
<div class="col-sm-2">
<a class="btn btn-info filterbycourse"> FILTER</a>
</div>
</div>
В каждом из этих представлений у меня есть следующий скрипт, который задает URL-адрес действия. Следующий код имеет Badge
в качестве контроллера. Однако в других 4 режимах контроллер отличается. Таким образом, только имя controller
изменяется в сценарии через представления.
<script>
$(function() {
$(".filterbycourse").click(function() {
var course_id = $('#Courses').val();
var url = '@Url.Action("Index", "Badge", new { CourseId = "----" }, null)';
url = url.replace("----", course_id);
window.location = url;
});
});
</script>
Я знаю, что я могу создать частичный вид для этого. Тем не менее, мне все равно придется иметь сценарий jQuery во всех представлениях, которые используют частичный вид. Интересно, есть ли эффективный способ справиться с этой ситуацией?
В вашем '' элемент , добавьте 'данных URL = "@ Url.Action (....)"', а затем в сценарии, получить URL с помощью 'вар URL = $ (это) .data ('url'); ' –
@StephenMuecke, то вы не рекомендуем использовать Partial View? – renakre
Если вы хотите использовать частичный, то вы всегда можете передать значение частичному указанию имени контроллера - '@ Html.Partial (" ... ", new {controller =" ... "})' to build url –