asp.net-mvc - route - select asp-for asp-items
¿Cuál es la mejor manera de escribir un formulario en ASP.NET MVC? (1)
Realmente no me gustan las cadenas en mi código, ya que no es posible refactorizar. Una buena forma es usar Linq Expressions. Si le pasan un modelo como ViewData, puede usar la siguiente declaración:
<%= ShowDropDownBox(viewData => viewData.Name); %>
...
public static string ShowDropDownList<T>(this HtmlHelper html, Expression<Action<T>> property)
{
var body = action.Body as MethodCallExpression;
if (body == null)
throw new InvalidOperationException("Expression must be a method call.");
if (body.Object != action.Parameters[0])
throw new InvalidOperationException("Method call must target lambda argument.");
string propertyName = body.Method.Name;
string typeName = typeof(T).Name;
// now you can call the original method
html.Select(propertyName, ... );
}
Sé que la solución original está funcionando más rápido, pero creo que esta es mucho más limpia.
¡Espero que esto ayude!
¿Cuál es la mejor forma de escribir un formulario para enviar algunos datos en ASP.NET MVC? ¿Es como lo demuestra Scott Guthrie aquí? ¿Hay mejores enfoques? Tal vez con menos uso de cuerdas?