У меня есть следующая страница _Layout.cshtml с кучей вызовов @Html.Action()
для нескольких частичных представлений.
<div class="wrapper">
<div class="header">
<a style="text-decoration:none;" href="@Url.Action("Index", "Home")"><div class="logo"><p>fisharwe</p><span class="greenText float-right">:</span></div></a>
<div class="searchBar">
@Html.Action("Search", "Item")
</div>
<div id="hearGreenBar"></div>
</div>
<div class="pageContent">
@RenderBody()
</div>
<div class="rightColumn">
<div id="help">
<div id="allHelpContent">
<span id="helpIcon"></span> <span id="helpTitle">help</span> <span id="helpArrow"></span>
</div>
</div>
<div id="userPanel">
@if(!Request.IsAuthenticated)
{
<div id="loginForm">@Html.Action("Login", "User")</div>
<div id="registerForm">@Html.Action("Register", "User")</div>
<hr class="greyLine" />
<div id="recentlyViewedItems">
<div id="recentItemsTitle">
<span class="recentItemsIcon"></span><span class="theRecentTitle">Recently Viewed</span>
</div>
</div>
}
else
{
<div id="userInfoSummary">@Html.Action("Summary", "User")</div>
}
</div>
</div>
</div>
Вверху вы можете увидеть вызов @Html.Action("Seach", "Item")
, который отображает панель поиска и позволяет пользователям искать элементы/категории/подкатегории... и т. д. У меня это работает сейчас, но это породило новую проблему! Когда пользователь что-то ищет и результаты отображаются, частичные элементы Login
и Register
на боковой панели (userPanel) отображают ошибки проверки, такие как «Электронная почта не может быть пустой». Я понимаю, что представление визуализируется независимо от того, какой фрагмент был отправлен обратно, но должен быть способ предотвратить это... Должен ли я избавиться от частичных фрагментов и отображать все на странице _Layout.cshtml? Но в этом случае мне нужно сделать эту страницу типизированной, что вызовет еще одну проблему... Итак, что можно сделать? Я открыт для любых предложений...
Спасибо.