#jquery #asp.net-mvc #asp.net-mvc-partialview
#jquery #asp.net-mvc #asp.net-mvc-partialview
Вопрос:
У меня есть функция jQuery, которая перезагружает div с помощью PartialView. Чтобы повторно использовать его в разных представлениях, мне нужно передать имя частичного представления контроллеру. Есть ли способ получить имя PartialView, в котором размещен скрипт?
Комментарии:
1. какую часть кода вы пытаетесь повторно использовать? Код jquery или метод actionresult контроллера, который переключается между частичным представлением на основе переданного вами имени представления? итак, если я правильно понял, все ли частичные представления имеют функцию jquery, которая перезагружает div?
2. Обычно я использую
data:
часть$.ajax
запроса для передачи любого дополнительного значения, которое мне понадобится в контроллере, напримерdata: JSON.stringify({ partialname: $('#viewname').val() })
3. Привет, Деннис, функция jQuery реагирует на щелчок по разбивке на страницы, чтобы запросить у контроллера следующую страницу. Я могу добавить параметр для передачи имени partialview, но мне было интересно, есть ли какой-либо способ, чтобы функция могла передать его самостоятельно
4. Хорошо, я понял. Возможно, вы можете рассмотреть возможность использования списка страниц для разбивки на страницы.
5. Спасибо, Деннис, я разберусь со списком страниц
Ответ №1:
Вот как вы можете получить имя частичного хостинга скрипта. Напишите это в частичном представлении, в котором размещен скрипт, и вы сможете получить доступ viewname
к своей функции jquery.
<script type="text/javascript">
// get the view name withought the file name extension
var viewname = '@Path.GetFileNameWithoutExtension(Server.MapPath(VirtualPath))';
alert(viewname);
</script>
Ответ №2:
Обычно я добавляю что-то похожее на приведенное ниже:
$('#user').on('keyup', function (e) {
var sel = $('#dog');
var inp = $(this).val();
if (e.keyCode == 13) {
e.preventDefault();
return false;
}
$.post('@Url.Action("SearchList", "Admin")/' inp, function (data) {
sel.show();
sel.html(data);
});
}).on('keydown', function (e) {
if (e.keyCode == 13) {
e.preventDefault();
return false;
}
});
Посмотрите в основном на $.post(….) . Если jQuery находится на той же странице, вы можете использовать @Url.Action, чтобы указать адрес, чтобы сообщить ему перезагрузить частичное.