Давайте начнем с максимы, которая была первоначально предложена Робом Конери: если где-то в вашем представлении есть встроенное «если», это, вероятно, показатель того, что вам следует либо: а) создать HtmlHelper или б) убрать логикупредставление и вставьте его в вашу ViewModel.
Сделав так, вы можете очистить ваш View, чтобы он выглядел примерно так (вы поняли):
<div id="followedFriends">
<% foreach (var friend in Model.FollowedFriends) { %>
<div id="friendContainer">
<div class="followedFriend">
<div class="userName">
<%: Html.ActionLink(friend.FoFriend.UserName, "Visitor", "Home", new {userID = friend.FoFriend.UserId}, null)%>
</div>
Currently reading:
<br />
<div class="bookLinks">
<%: Html.DisplayBooklinks(friend) %>
</div>
<div class="bookReviews">
<%: Html.DisplayBookReviews(friend) %>
</div>
<div class="bookQuotes">
<%: Html.DisplayQuotes(friend) %>
</div>
</div>
</div>
<% } %>
</div>
На этом этапе,если есть вероятность, что этот фрагмент пользовательского интерфейса может быть использован на какой-либо другой странице, вам следует рассмотреть возможность добавления его в пользовательский элемент управления.Таким образом, ваш взгляд теперь может выглядеть примерно так:
<% Html.RenderPartial("FriendDetails", Model.FollowedFriends); %>
В конечном счете, когда ваш вид начинает выглядеть как суп, это потому, что ваш взгляд слишком много думает.Что, в свою очередь, означает: какой-то другой уровень вашего приложения недостаточно продуман.Путем точного определения логики в ваших представлениях и определения того, какие абстракции могут помочь вам в вашей попытке остаться СУХИМ, ваши представления станут намного более читабельными и гораздо более удобными для обслуживания.