Я можу придумати ідеальний 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 за допомогою двигуна Super simple view.