Posso pensare a un perfetto esempio di Don't do it
.
Diciamo che abbiamo un ProductController:
public class ProductController()
{
public ViewResult Discontinued()
{
var db = new ProductsDb();
var products = db.Products.Where(x => x.Discontinued).ToList();
return new ViewResult(products);
}
}
Con il rasoio abbiamo un'alternativa
public class ProductController()
{
public ViewResult Discontinued()
{
var db = new ProductsDb();
var products = db.Products.ToList();
return new ViewResult(products);
}
}
e a nostro avviso:
@model IEnumerable<Product>
@foreach (var item in Model.Where(x => x.Discontinued)) {
....
}
Penso sia abbastanza ovvio che la seconda soluzione sia così sbagliata. Se fai qualcosa del genere, non dare la colpa al rasoio - incolpati.
E non dimenticare: essere in grado di usare C # nelle viste non è una caratteristica del rasoio, era possibile anche con le viste ASP.NET. Con il rasoio è solo un po 'più semplice.
Se stai cercando un motore di template che sia più simile ai binari, dovresti dare un'occhiata a nancy.fx con il motore di visualizzazione Super semplice.