El equivalente funcional más cercano a los controles de usuario reutilizables estilo WebForms en MVC son los helpers html. Un helper html es un método que devuelve algo de marcado. Lo que se recomienda es para ponerlos en práctica en forma de métodos de extensión fuera HtmlHelper
o alguna otra propiedad de una página MVC:
public static IHtmlString MyControl(this HtmlHelper helper, string value) {
return new HtmlString("<p>" + value + "</p>");
}
Puede añadir este método para su proyecto MVC directamente o se puede añadir a una clase separada biblioteca. Lo único que necesita hacer referencia la biblioteca de clases es System.Web.Mvc.dll para la referencia HtmlHelper
(también puede necesitar System.Web.dll si usa más tipos).
Por lo general, llamar desde el punto de vista como tal (este ejemplo utiliza la sintaxis Razor que hay de nuevo en MVC 3)
@Html.MyControl("my value")
Mientras ayudantes superficialmente html emiten marcado como controles de usuario, hay diferencias significativas. El más importante es que las vistas MVC no tienen el concepto del ciclo de vida de la página WebForms. Esto significa que a diferencia de los controles de usuario, los helpers html se procesan en una sola pasada. No hay varias fases como Init, Load, Render, etc. en WebForms donde puede conectar eventos del lado del servidor para interactuar con otros controles en la página.
Dependiendo de los tipos específicos de eventos de los que esté hablando, podría haber técnicas MVC adecuadas para resolver su tarea.¿Podría proporcionar más detalles sobre lo que quiere hacer? Html helpers puede ser bastante poderoso. Por ejemplo, los controles de entrada MVC incorporados como TextBoxFor
pueden conectar la validación del lado del cliente, etc.
Relacionado con (pero no un duplicado de) estas preguntas: [73902] (http://stackoverflow.com/questions/73902/ asp-net-mvc-components), [810187] (http://stackoverflow.com/questions/810187/is-there-an-equivalent-to-monorail-view-components-for-the-asp-net-mvc -framework) –