MVC 3: agregue usercontrol a Razor view

Tengo un archivo DLL que contiene un control de usuario dentro, en la vista Formulario web puedo usarlo fácilmente mediante el uso de

 

Pero, ¿cómo hacerlo en Razor view?

No puede agregar controles del lado del servidor a Razor views. En general, es una muy mala práctica hacerlo de todos modos en una aplicación ASP.NET MVC. Debido al legado del motor de visualización WebForms, puede violar esta regla, pero en Razor las cosas se han aclarado.

Dicho esto, todavía puedes hacer algo de pornografía en Razor e incluir un parcial de WebForms que contendrá el control del usuario (totalmente no recomendado, ni siquiera sé por qué lo estoy mencionando, pero de todos modos):

 @Html.Partial("_Foo") 

donde en _Foo.ascx podría incluir controles del lado del servidor:

 <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %> <%@ Register Assembly="SomeAssembly" Namespace="SomeNs" TagName="foo" %>  

Además, no se recomienda, pero puede representar un control en el código, como en un HTML Helper:

 public static string GenerateHtmlFromYourControl(this HtmlHelper helper, string id) { var yourControl = new YourControl(); yourControl.ID = id; var htmlWriter = new HtmlTextWriter(new StringWriter()); yourControl.RenderControl(htmlWriter); return htmlWriter.InnerWriter.ToString(); } 

y luego puedes referenciarlo desde tu punto de vista:

 Html.GenerateHtmlFromYourControl("YourControlId") 

Solo asegúrate de configurar / referenciar tus espacios de nombres correctamente para hacer esto.

Advertencia

FYI, estoy bastante seguro de que hay algunas limitaciones severas con respecto al ciclo de vida de la página aquí …