Я могу придумать идеальный Don't do it
пример.
Допустим, у нас есть ProductController:
public class ProductController()
{
public ViewResult Discontinued()
{
var db = new ProductsDb();
var products = db.Products.Where(x => x.Discontinued).ToList();
return new ViewResult(products);
}
}
С бритвой у нас есть альтернатива
public class ProductController()
{
public ViewResult Discontinued()
{
var db = new ProductsDb();
var products = db.Products.ToList();
return new ViewResult(products);
}
}
и по нашему мнению:
@model IEnumerable<Product>
@foreach (var item in Model.Where(x => x.Discontinued)) {
....
}
Я думаю, что совершенно очевидно, что второе решение кажется таким неправильным. Если вы делаете что-то подобное, не вините бритву - вините себя.
И не забывайте: возможность использовать C # в представлениях - это не особенность бритвы, это было возможно и в представлениях ASP.NET. С бритвой все немного проще.
Если вы ищете шаблонизатор, который больше похож на движок, вам следует взглянуть на nancy.fx с супер простым механизмом просмотра.