Recuerdo haber visto un blog (o algo) que decía que no deberías usar <% si ...%> en archivos .aspx en ASP.NET MVC, pero no puedo recordar lo que dice que es la alternativa. ¿Alguien puede recordar haber visto esto y señalarme?"si" se considera dañino en archivos ASP.NET MVC View (.aspx)?
Respuesta
No estoy seguro de si esto es lo que vio, pero here es un blog que lo menciona. Ver artículo # 11.
Creo que está bien. Permite que la vista tenga control de su presentación.
Sospecho que el punto era un intento de evitar el código de spaghetti en lugar de restringir el uso de "si", aquí hay un enlace a un blog de Rob Conery, menciona el uso de ayudantes en lugar de Ifs, así que puede ser lo que vio ASP.NET MVC: Avoiding Tag Soup
Creo que lo que usted se refiere es un post by Rob Conery, donde menciona una regla que utiliza:
Si hay una
if
, haré ayuda
Así que para responder a su pregunta, la idea es que si necesita usar if
en su Vista, debería considerar agregar un método de extensión auxiliar para representar esa parte de su Vista.
¿Es este el problema al que se refiere?
expresiones de enlace no se pueden utilizar en bloque de instrucciones <%%>, al igual que declaraciones no se pueden utilizar en una unión bloque de expresión <% #%>
- Bruce (sqlwork.com)
"Jason" <> escribió en el mensaje noticia: 23C11F83-A2AA-406D-BDEC -...
Qué hay de malo con la siguiente sentencia if en mi página aspx?
"T" Entonces%>Aparece el error que dice: BC30201: Expresión esperada.
Bruce Barker
Básicamente lo que significa es que usted no debe tener enormes si las declaraciones en sus vistas, sus controladores y ViewModels deben ser capaces de manejar la lógica. Ejemplo:
<h2 class="title">
<% if (ViewData["category"] == null { %>
All Products
<% } else { % >
<%= ViewData["category"] %>
<% } %>
</h2>
debe ser:
<h2 class="title>
<%= Model.Title %>
</h2>
Si sus controladores y ViewModels no pueden manejar la lógica, se deben escribir en HTML ayudantes para la lógica más complicado (por lo que es reutilizable y más legible).
<h2 class="title>
<%= Html.GetPageTitle(Model.Category) %>
</h2>
como creo que el mejor enfoque para esto es tratar de manejar su condición en caso de controlador y pasar el punto de vista específico para el resultado requerido o pasar el nombre de Vista en una variable para rendir.
public class HomeController :Controller
{
public ActionResult Category(string? category)
{
View viewToReturn;
if (category == null)
viewToReturn = View("CategoryList", repo.GetAllCategory); /// it is a View
else
viewToReturn = View("Category", repo.GetCategory(category)); /// it is a View
return viewToReturn;
}
}
Bueno, Martin respuesta es también de las mejores prácticas.
- 1. ¿Se considera `qrefresh` dañino?
- 2. MVC 3 ASPX VS RAZOR View Engine
- 3. ASP.Net MVC View Structure
- 4. Asp.net MVC View Testing?
- 5. ¿Por qué javascript: void (0) se considera dañino?
- 6. (¿por qué) se considera dañino el selector de estrella CSS?
- 7. Motor ASP.NET MVC Razor view
- 8. Cómo usar ASP.Net MVC View dentro de la página .aspx de WebForms?
- 9. ASP.NET MVC 3 Razor View Restrictions
- 10. ASP.NET MVC View Engine Secuencia de resolución
- 11. Print-friendly ASP.NET MVC 3 view
- 12. ASP.NET MVC - HttpException o return view?
- 13. Desventajas de ASP.net MVC Webforms View Engine?
- 14. ¿Qué es un motor ASP.Net MVC View?
- 15. ¿Es ASP.net MVC View una "clase"?
- 16. Spark-View-Engine con ASP.NET MVC2
- 17. Muchos a muchos en asp.net mvc view y controller
- 18. Cómo devolver View con QueryString en ASP.NET MVC 2?
- 19. cómo acceder a querystring en ASP.Net MVC View?
- 20. Las páginas Aspx no se cargarán después de actualizar desde Asp.net MVC 2 a 3 RC
- 21. ASP.NET MVC Archivos nombres subrayado
- 22. ASP.net Web Forms, obtenga aspx/view errors en tiempo de compilación?
- 23. ASP.NET MVC View User Control: cómo establecer IDs?
- 24. Mezclar ASP.NET MVC en ASP.NET WebForms
- 25. Descarga de archivos en Asp.Net MVC 2
- 26. MVC ASP.NET o Razor
- 27. Asp.Net System.Web.Routing Buscar real .aspx Página
- 28. Personificación en ASP.NET MVC
- 29. ¿Es posible utilizar la declaración 'using' en mis vistas aspx? (ASP.NET MVC)
- 30. ¿Qué es ASP.Net MVC?
Sí, ese es el que recuerdo! Los enlaces en las otras respuestas también son buenos, ¡así que gracias! – JoelFan