![Page 1: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/1.jpg)
UmzugASP.NET-WebForms-Elemente in MVC weiterverwenden
Dr. Malte Clasenadesso AG
![Page 2: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/2.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Über uns
•Malte ClasenSoftwareentwicklerhttp://malteclasen.de
• adesso AGIT-Dienstleisterhttp://adesso.de
![Page 3: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/3.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Rezeptefuchs.de
![Page 4: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/4.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Rezeptefuchs.de
![Page 5: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/5.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Gegeben: WebForms-Anwendung
• Controls (Code)• Controls (ASCX)• Pages (ASPX)
![Page 6: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/6.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Lifecycle WebForms / MVC
Init
• PreInit• Init• InitComplete
Load
• Load• [Control Events]• LoadComplete
PreRender
• PreRender• PreRenderComplete
Done
• SaveStateComplete• Render• Unload
Model
Controllererzeugt
Viewrendert
![Page 7: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/7.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
WebForms in MVC einbetten
• Lifecycle von WebForms und MVC praktisch nicht vereinbar• Komplexität in WebForms-Anwendungen in
Controls gebündelt• Controls in MVC einbetten
• sinnvoll für Elemente, die für sich stehen können• ungeeignet bei Interaktion mit dem Rest der Seite
![Page 8: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/8.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Ansatz
• Eingabe: HttpRequest• Ausgabe: HttpResponse•WebForms-Aufruf simulieren• HttpRequest direkt übergeben, wird nicht verändert• HttpResponse neu erstellen und die erzeugte
Ausgabe in die MVC-Ausgabe integrieren
![Page 9: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/9.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Vereinfachungen
• nur ein Control pro HTML-Seite• sonst gesonderte Behandlung des form-Tags notwendig• nur Controls, keine Pages• Pages entweder in den folgenden Code einflechten, oder• Pages in ASCX-Controls umwandeln• nur Form, kein Head• kann analog aus dem HTML-Code übertragen werden
![Page 10: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/10.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Quellcode
• https://github.com/malteclasen/MvcMigration.git
![Page 11: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/11.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
Controller
private Control CreateItem(Page page);
public virtual ActionResult Index(){
var item =WebFormsHelper.RenderLegacyItem(CreateItem, HttpContext, PageUrl);
ViewBag.ControlHtml = item.ControlHtml;return View("LegacyItem");
}
Controller.Index()
![Page 12: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/12.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
Code-Control
private Control CreateItem(Page page){
return new WebForms.MyControl();}
CreateItem()Controller.Index()
![Page 13: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/13.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
ASCX-Control
• ascx als Embedded Resource
private Control CreateItem(Page page){
return page.LoadControl("~/bin/WebForms.dll/" +
"WebForms.MyWebUserControl.ascx");}
CreateItem()Controller.Index()
![Page 14: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/14.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
Global.asax
protected void Application_Start(){
…HostingEnvironment.
RegisterVirtualPathProvider(new
EmbeddedResourcePathProvider());…
}
Application_Start()
![Page 15: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/15.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
Controller
public virtual ActionResult Index(){
var item =WebFormsHelper.RenderLegacyItem(CreateItem, HttpContext, PageUrl);
ViewBag.ControlHtml = item.ControlHtml;return View("LegacyItem");
}
Controller.Index()
![Page 16: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/16.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
WebFormsHelper.RenderLegacyItem()
public static ItemContent RenderLegacyItem( Func<Page, Control> contentCreator){
var page = CreatePage();var content = contentCreator(page);page.AddControl(content);
var writer = new StringWriter();var response = ProcessRequest(page,
writer);
…
WFH.RenderLegacyItem()Controller.Index()
![Page 17: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/17.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
WebFormsHelper.RenderLegacyItem()
…
TransferCookies(response,HttpContext.Current.Response);
var form = GetForm(Clean(stringWriter.ToString()));
return new ItemContent {ControlHtml = form,};
}
WFH.RenderLegacyItem()Controller.Index()
![Page 18: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/18.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
WebFormsHelper.CreatePage()
private static ContainerPage CreatePage() {var page = new ContainerPage {
RenderingCompatibility=new Version(3, 5),
ClientIDMode=ClientIDMode.AutoID,};
var scriptManager = new ScriptManager { … }
AddDefaultScripts(scriptManager);page.AddControl(scriptManager);page.AddHead(new ContentPlaceHolder {
ID = "HeadContent"});return page;
}
WFH.CreatePage()WFH.RenderLegacyItem()Controller.Index()
![Page 19: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/19.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
ContainerPage
private class ContainerPage : Page{
private HtmlForm _form = new HtmlForm();private HtmlHead _head = new HtmlHead();protected override void OnInit(EventArgs e)
…public void AddHead(Control control) … public void AddControl(Control control) …
private HttpSessionState _session;public override HttpSessionState Session …
}WFH.CreatePage()WFH.RenderLegacyItem()Controller.Index()
![Page 20: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/20.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
ContainerPage.OnInit()
protected override void OnInit(EventArgs e){
base.OnInit(e);var html = new HtmlGenericControl("html");Controls.Add(html);html.Controls.Add(_head);
var body = new HtmlGenericControl("body");
html.Controls.Add(body);_form.Enctype = "multipart/form-data";body.Controls.Add(_form);
}CP.OnInit()WFH.CreatePage()WFH.RenderLegacyItem()Controller.Index()
![Page 21: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/21.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
WebFormsHelper.CreatePage()
private static ContainerPage CreatePage() {var page = new ContainerPage {
RenderingCompatibility=new Version(3, 5),
ClientIDMode=ClientIDMode.AutoID,};
var scriptManager = new ScriptManager { … }
AddDefaultScripts(scriptManager);page.AddControl(scriptManager);page.AddHead(new ContentPlaceHolder {
ID = "HeadContent"});return page;
}
WFH.CreatePage()WFH.RenderLegacyItem()Controller.Index()
![Page 22: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/22.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
WebFormsHelper.AddDefaultScripts()
private static void AddDefaultScripts(ScriptManager scriptManager)
{scriptManager.Scripts.Add(new
ScriptReference {Name = "MsAjaxBundle"});
scriptManager.Scripts.Add(new ScriptReference
{Name = "WebForms.js", Assembly = "System.Web", Path =
"~/Scripts/WebForms/WebForms.js"});
…}
WFH.AddDefaultScripts()WFH.CreatePage()WFH.RenderLegacyItem()Controller.Index()
![Page 23: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/23.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
App_Start\BundleConfig
public class BundleConfig{
public static void RegisterBundles(BundleCollection bundles)
{bundles.Add(new
ScriptBundle("~/bundles/MsAjaxJs").Include(
"~/Scripts/WebForms/MsAjax/MicrosoftAjax.js",…));
}
BC.RegisterBundles()
![Page 24: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/24.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
WebFormsHelper.RenderLegacyItem()
public static ItemContent RenderLegacyItem( Func<Page, Control> contentCreator){
var page = CreatePage();var content = contentCreator(page);page.AddControl(content);
var writer = new StringWriter();var response = ProcessRequest(page,
writer);
…
WFH.RenderLegacyItem()Controller.Index()
![Page 25: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/25.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
WebFormsHelper.ProcessRequest()
private static HttpResponse ProcessRequest(IHttpHandler page, TextWriter writer)
{var response = new HttpResponse(writer);var context = new HttpContext(
HttpContext.Current.Request, response);
context.SetSessionStateBehavior(SessionStateBehavior.Required);
page.ProcessRequest(context);return response;
}WFH.ProcessRequest()WFH.RenderLegacyItem()Controller.Index()
![Page 26: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/26.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
ContainerPage.Session
public override HttpSessionState Session{
get {
return _session ?? (_session =GetMockHttpSessionState());
}}
CP.SessionWFH.ProcessRequest()WFH.RenderLegacyItem()Controller.Index()
![Page 27: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/27.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
ContainerPage.GetMockHttpSessionState
private static HttpSessionStateGetMockHttpSessionState()
{var staticObjects =
new HttpStaticObjectsCollection();var itemCollection =
new SessionStateItemCollection();IHttpSessionState sessionStateContainer =
new HttpSessionStateContainer(…);
…CP.GetMockHttpSessionState()CP.SessionWFH.ProcessRequest()WFH.RenderLegacyItem()Controller.Index()
![Page 28: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/28.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
ContainerPage.GetMockHttpSessionState
var state = (HttpSessionState)Activator.CreateInstance(
typeof(HttpSessionState),BindingFlags.Public |BindingFlags.NonPublic |BindingFlags.Instance | BindingFlags.CreateInstance,null,new object[]
{ sessionStateContainer },CultureInfo.CurrentCulture);
return state;}
CP.GetMockHttpSessionState()CP.SessionWFH.ProcessRequest()WFH.RenderLegacyItem()Controller.Index()
![Page 29: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/29.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
WebFormsHelper.RenderLegacyItem()
…
TransferCookies(response,HttpContext.Current.Response);
var form = GetForm(Clean(stringWriter.ToString()));
return new ItemContent {ControlHtml = form,};
}
WFH.RenderLegacyItem()Controller.Index()
![Page 30: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/30.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
WebFormsHelper.TransferCookies()
private static void TransferCookies(HttpResponse source, HttpResponse target)
{foreach (var cookie in
source.Cookies.Cast<string>().Select(key => source.Cookies[key]).Where(cookie => cookie != null))
{target.Cookies.Add(cookie);
}}
WFH.TransferCookies()WFH.RenderLegacyItem()Controller.Index()
![Page 31: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/31.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
WebFormsHelper.RenderLegacyItem()
…
TransferCookies(response,HttpContext.Current.Response);
var form = GetForm(Clean(stringWriter.ToString()));
return new ItemContent {ControlHtml = form,};
}
WFH.RenderLegacyItem()Controller.Index()
![Page 32: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/32.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
WebFormsHelper.Clean()
private static string Clean(string source){
return source.Replace(" ", " ");
}
WFH.Clean()WFH.RenderLegacyItem()Controller.Index()
![Page 33: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/33.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
WebFormsHelper.RenderLegacyItem()
…
TransferCookies(response,HttpContext.Current.Response);
var form = GetForm(Clean(stringWriter.ToString()));
return new ItemContent {ControlHtml = form,};
}
WFH.RenderLegacyItem()Controller.Index()
![Page 34: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/34.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
WebFormsHelper.GetForm()
private static string GetForm(string rendered){
const string formStartTag = "<form";const string formEndTag = "</form>";var formStart =
rendered.IndexOf(formStartTag);var formEnd =
rendered.LastIndexOf(formEndTag);var form = rendered.Substring(formStart,
formEnd-formStart+formEndTag.Length);
return form;} WFH.GetForm()
WFH.RenderLegacyItem()Controller.Index()
![Page 35: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/35.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Callstack
Controller
public virtual ActionResult Index(){
var item =WebFormsHelper.RenderLegacyItem(CreateItem, HttpContext, PageUrl);
ViewBag.ControlHtml = item.ControlHtml;return View("LegacyItem");
}
Controller.Index()
![Page 36: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/36.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
View
@Html.Raw(ViewBag.ControlHtml)
![Page 37: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/37.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Zusammenfassung
• Control laden, ASCX aus Embedded Resource• HttpContext und Page erzeugen• Page.ProcessRequest aufrufen• Cookies transferieren• HTML-Code an View übergeben
• Quellcode auf https://github.com/malteclasen/MvcMigration.git
![Page 38: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/38.jpg)
Vielen Dank!
Dr. Malte Clasenadesso AG
![Page 39: Umzug ASP.NET-WebForms-Elemente in MVC weiterverwenden Dr. Malte Clasen adesso AG](https://reader036.vdokument.com/reader036/viewer/2022081511/55204d7e49795902118ce884/html5/thumbnails/39.jpg)
Herbstcampus 2012 – Umzug - ASP.NET-WebForms-Elemente in MVC weiterverwenden – Dr. Malte Clasen
Firma
• mein Blog: http://malteclasen.de/blog• mein Arbeitgeber: http://adesso.de• Stellenangebote: http://www.aaajobs.de/