Laden...

Asp.net core PartialView ändern während debug ohne Effekt

Erstellt von HappyLil vor 7 Jahren Letzter Beitrag vor 7 Jahren 2.164 Views
H
HappyLil Themenstarter:in
154 Beiträge seit 2007
vor 7 Jahren
Asp.net core PartialView ändern während debug ohne Effekt

Hallo,
in asp.net core kann man problemlos während dem debuggen eine .cshtml datei ändern und anschliessend im browser f5 drücken (oder reload) um die änderung zu sehen.

nun hab ich eine seite in der ich eine partialview mittels html.renderpartialasync einbinde. auch das klappt.
ändere ich nun während dem debuggen die partial view sehe ich die änderung im browser leider nicht. einzige lösung: stop/start debugger.

Muss ich damit leben, oder kann ich asp.net irgendwie dazu kriegen die partialview neu zu laden?

herzlichen Dank!

16.807 Beiträge seit 2008
vor 7 Jahren

Vewendest Du Visual Studio oder Visual Studio Code?
RenderPartialAsync cached jedenfalls keine Views.

Edit: was mir gerade auffällt: verwendest Du wirklich Html.**Render**PartialAsync oder (das eher zu empfehlende) Html.PartialAsync?
Letzteres geht einwandfrei; lässt sich auch Live editieren - gerade versucht.

Edit2: bei mir funktioniert sowohl RenderPartialAsync wie auch PartialAsync.
Getestet in VS 2015 Update 3 inkl. Preview 2 der Toolings.

H
HappyLil Themenstarter:in
154 Beiträge seit 2007
vor 7 Jahren

besten Dank!
ich habe den Update gemacht und nun habe ich ziemlich Probleme mit cshtml Dateien.
öffne ich eine, erkennt VS kein einziges Attribute mehr, alles rot. Ebenso erhalte ich folgende Fehlermeldung:> Fehlermeldung:

The type or namespace name 'IModelExpressionProvider' does not exist in the namespace 'Microsoft.AspNetCore.Mvc.ViewFeatures'

Keine Ahnung was das jetzt sein könnte.

16.807 Beiträge seit 2008
vor 7 Jahren

Sicher, dass Du alle Dependencies (SDK, Tooling...) installiert hast? Korrekt auf RTM migriert?
Hört sich an, dass da was schief ist.

Das Update 3 von VS2015 war an manchen Stellen problematisch. Viele ham sich auf Twitter darüber ausgelassen und auch ich war davon betroffen.
Musste VS deinstallieren und neuinstallieren.

2.207 Beiträge seit 2011
vor 7 Jahren

Hallo HappyLil,

Update 3 ist echt ein bisschen shaky, auch wenn bei mir beispielsweise alles glatt lief. Haben sich aber wirklich viele gemeldet.

Bezüglich deines Problems:


The type or namespace name 'IModelExpressionProvider' does not exist in the namespace 'Microsoft.AspNetCore.Mvc.ViewFeatures'

Wie dem auch sei: Hier gibt's ein paar Anleitungen zum migrieren von A nach B. Vielleicht findest du ja was, was du vergessen hast.

Getting Ready for ASP.NET Core RC2
Converting an ASP.NET Core RC1 Project to RC2
Converting ASP.NET Core 1.0 RC2 to RTM Bits

Vielleicht hilft es ja.

Gruss

Coffeebean

H
HappyLil Themenstarter:in
154 Beiträge seit 2007
vor 7 Jahren

Zuerst mal vielen Dank - ich ackere da mal durch....

H
HappyLil Themenstarter:in
154 Beiträge seit 2007
vor 7 Jahren

Ursache des Problem war ganz etwas anderes, nähmlich dass wir eine zweite Kundenspezifische WebApp im selben Projekt haben, welche die Basis WebApp erweitert und zT überschreibt. Die RazorEngine "beobachtete" diese Kunden-Views nicht.
Problem konnte mit folgenden Code, der im Startup der Kunden-Webapp steht, gelöst werden:


public override IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddMvc().AddRazorOptions(options =>
            {
                // look for razor views in lrs.web too
                if (HostingEnvironment.IsDevelopment()) // when developing, look for the physical files to allow for dynamic recompilation
                {
                    options.FileProviders.Add(new PhysicalFileProvider(Path.Combine(HostingEnvironment.ContentRootPath, "../lrs.web")));
                }
                else // use embedded resources
                {
                    options.FileProviders.Add(new EmbeddedFileProvider(Assembly.GetExecutingAssembly(), "lrs.web"));
                }
            });
            services.AddSingleton<IUIModuleProvider, LRSUIModuleProvider>();
            return base.ConfigureServices(services);
        }