Я не думаю, что это должно быть на мой взгляд, но вместо этого обработано контроллером. Я предполагаю, что это может быть сделано в SQL (может быть уродливым очень быстро) или в контроллере (я думаю, это может быть лучше) или, может быть, даже HTML-помощник. Но я не уверен, как распаковать/переупаковать IQueryable/IEnumberable в контроллере. Я думаю, что предоставить дизайнеру шаблонов все, что им нужно, а затем лучше всего, поэтому предоставит как полное описание, так и выдержку (которая генерируется).Лучший способ сделать это ..?
Мысли/идеи оценили.
<p>
<% var description = Regex.Replace(Regex.Replace(spotlight.Description, "<[^>]*>", string.Empty), "[\0x0020\r\n]+", " ").TrimEnd();
if (description.Length < 297)
{
%> <%= description %> <%
} else { %>
<%= description.Substring(0, 297) + "..." %> <%
}
%> <a href="<%= Url.Action("Details", "Spotlights", new { id=spotlight.SpotlightID}) %>">Read »</a>
</p>
Мой репозиторий:
public IQueryable<Spotlight> FindAllSpotlights()
{
return from spotlight in db.Spotlights
where spotlight.PublishDate <= DateTimeOffset.Now
orderby spotlight.PublishDate descending
select spotlight;
}
Мой контроллер:
public ActionResult Index()
{
var spotlights = spotlightRepository.FindTopSpotlights().ToList();
return View(spotlights);
}