Вы можете просто пропустить переключатель флажка, если щелкнул элемент, был флажок.
//Generate dynamically div row encompassing checkbox and label
$('#wraper').append(`
<div id="row">
<label>This is the checkbox</label>
<input type="checkbox"></input>
</div>
<br>
<span class="msg"></span>
`);
//Attach delegated event listener to entire row
$('#wraper').on('click', '#row', function(e) {
var $checkbox = $('#row [type="checkbox"]').eq(0);
//Toggle checked attribute
if (!$checkbox.is(e.target)) {
$checkbox.prop('checked', !$checkbox.prop('checked'));
}
//Display checked status after click
$('#wraper .msg').text(`Checkbox status is ${$checkbox.prop('checked')}`);
});
<!doctype html>
<html>
<head>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
</head>
<body>
<div id="wraper"></div>
</body>
</html>
Поскольку я называл RenderAction () от представления в продукте
...
Я не понимаю, почему я должен был указать полный путь представления. Имело бы смысл мне для относительного имени интерпретироваться относительно пути текущего представления, а не пути представления исходного контроллера
Первая часть думает, что Вы неправильно понимаете, "местоположение выполнения" из-за отсутствия лучшего или официального термина. Пути не относительно Вашего представления, даже представления Вашего "контроллера", как Вы выразились. Они относительно Вашего URL запроса, который определяет контекст контроллера. Я не могу говорить это очень хорошо, но если Вы провели немного времени в Отражателе, выглядящем на то, как URL и маршруты разрешены, я думаю, что это было бы всю осень в место в Вашей голове.
От рассмотрения MVCStoreFront выбирают, это - то, как им структурировали все для вызова RenderPartial
Views
Shared
ProductSingle
ProductList
ArticleSingle
ArticleList
Затем представьте их через:
<% Html.RenderPartial("ProductSingle", ViewData["ProductList"]); %>
<% Html.RenderPartial("ProductList", product); %>
<% Html.RenderPartial("ArticleSingle", article); %>
<% Html.RenderPartial("ArticleList", ViewData["ArticleList"]); %>
[редактирование:
Я думал, у Вас есть 2 случая:
В первом случае пользовательские элементы управления представления действительно принадлежат домашнему контроллеру, и имеет смысл помещать их в домашнюю папку контроллера. Во втором случае имеет смысл размещать их в совместно используемую папку, так как они будут совместно использованы контроллерами.
В любом случае возможно, можно разместить их в sub папку. Как Представления/Дом/Продукты и затем пробуют RendarPartial ("продукт / Единственный") и видят то, что происходит? Я не знаю, попыталось ли это разрешить его к: дом/Продукт/Единственный и затем общий/Продукт/Единственный или нет. Если sub папки работают, это, кажется, позволяет логическое разделение продукта и Статьи при показе, что они - все еще члены или Домашнего контроллера или Общий всеми контроллерами.
]
Проверьте эту запись в блоге Steve Sanderson:
http://blog.codeville.net/2008/10/14/partial-requests-in-aspnet-mvc/
То, что Вы делаете, не неправильно, но это действительно кажется виду, идут вразрез с конвенцией имен папок Представления/Контроллера. Тем не менее имеет смысл хотеть определить агностические контроллером пользовательские элементы управления представления, и вложение их кажется допустимым. Таким образом, я не знаю!
Так или иначе ссылка просто описывает метод вместо того, чтобы использовать RenderPartial для рендеринга управления использованием, это определяет метод RenderPartialRequest, который представляет возвращаемое значение (в случае пользовательский элемент управления) действия контроллера. Таким образом, Вы могли добавить продукт и контроллер Статей со Списком Действия, который возвращает Ваш пользовательский элемент управления, и затем назовите те два действия от представления Home/Index. Это кажется более интуитивным мне, но просто мнению.
Он также упоминает подконтроллеры от MVC Contrib, и я вполне уверен существует требование чего-то вроде этого, чтобы быть частью ASP.NET выпуск MVC.