Мне нужно настроить изображение баннера на моей странице макета динамически на основе выбранного значения. Я занимаюсь исследованиями, но кажется, что у меня не может быть контроллера для страницы макета, поэтому я смотрел на использование частичного представления, но я ничего не вижу. Как я могу это сделать?Контроллер для частичного просмотра в макете страницы MVC
Макет страницы
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@ViewBag.Title - My ASP.NET Application</title>
@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
</head>
<body>
<div class="header">
<div>
@Html.Partial("_Header")
</div>
</div>
<div class="container body-content">
@RenderBody()
<hr />
<footer>
<p>© @DateTime.Now.Year - My ASP.NET Application</p>
</footer>
</div>
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@RenderSection("scripts", required: false)
</body>
</html>
Частичный вид
@model TicketPaymentsAzureMVC.Models.Client
<h1>Header</h1>
<img src="@Url.Content(Model.BannerUrl)" alt="Image" />
Вы получаете ошибку? В чем проблема? вы устанавливаете свойство BannerUrl в модели? –
Нет ошибки, я думаю, я не уверен, как и где нужно установить свойство.Использует ли частичный вид свой собственный контроллер? Где я могу выполнить свою логику и перейти к ней? –
Я ответил на ваш вопрос. Я думаю, что сделать вызов AJAX в макете - лучший способ пойти. Частичные представления используют ту же модель (или подмножество модели), которая у вас есть в текущем представлении, если вы делаете @ Html.Partial (...). Вы можете сгенерировать частичный вид с помощью вызова AJAX, но в этом случае я думаю, что лучше сделать вызов AJAX и получить только URL-адрес изображения. –