Ahoj,
v jedné stránce v projektu se mi přestali fungovat tlačítka nedělal jsem v této části žádné změny, ale při jiných úpravách jsem aktualizoval na 4.3.6 a později na 4.3.7
Na jedné konkrétní stránce mi př kliknutí na tlačítko vyskočila chyba:
DotVVM.Framework.Runtime.Commands.InvalidCommandInvocationException Invalid command invocation - The specified command binding was not found. ### Command binding with wrong DataContext path and correct binding id, validation path
Zjistil jsem, že se to chová jak u dot:button tak bp:button a vyskakuje při použití vlastností visible nebo enable. přitom při vykreslování stránky tyto atributy fungují v pořádku a problém je pouze po kliknutí na tlačítko.
Když jsem visible v tlačítku odebral a použil v div elementu chovalo se to správně.
dot:Button má takovou zvláštní fíčuru, že zakazuje zavolání commandu, pokud je na serveru hodnota Visible nebo Enabled false. Tato chyba vypadá jako, že může být způsobená tímto, na serveru máte z nějakého důvodu MoznostPrihlasovani rovno false. Ta chybová hláška je dost zavádějící, to opravíme (díky za nahlášení).
Procházel jsem commity, ale Jak to může souviset s upgradem 4.3.5->4.3.7 mě nenapadá, tato validace je v Buttonu od nepaměti. Pokud zjistíte jakým způsobem se změnila MoznostPrihlasovani na false, tak určitě dejte vědět; bylo by dost špatné, kdyby jsme nějakou opravou změnili jak funguje serializace
Message:“Invalid command invocation - The specified command binding was not found.”
Data:{}
Source:“DotVVM.Framework”
HResult:-2146233088
StackTrace:" at DotVVM.Framework.Runtime.Commands.EventValidator.ValidateCommand(String path, String commandId, DotvvmControl viewRootControl, String validationTargetPath) in //src/Framework/Framework/Runtime/Commands/EventValidator.cs:line 36\r\n at DotVVM.Framework.Runtime.Commands.CommandResolver.GetFunction(DotvvmControl targetControl, DotvvmControl viewRootControl, IDotvvmRequestContext context, String[] path, String commandId, Func2[] args) in /_/src/Framework/Framework/Runtime/Commands/CommandResolver.cs:line 23\r\n at DotVVM.Framework.Runtime.Commands.CommandResolver.GetFunction(DotvvmControl viewRootControl, IDotvvmRequestContext context, String[] path, String command, Func2[] args) in //src/Framework/Framework/Runtime/Commands/CommandResolver.cs:line 56\r\n at DotVVM.Framework.ViewModel.Serialization.DefaultViewModelSerializer.ResolveCommand(IDotvvmRequestContext context, DotvvmView view) in //src/Framework/Framework/ViewModel/Serialization/DefaultViewModelSerializer.cs:line 384\r\n at DotVVM.Framework.Hosting.DotvvmPresenter.ProcessRequestCore(IDotvvmRequestContext context) in //src/Framework/Framework/Hosting/DotvvmPresenter.cs:line 236\r\n at DotVVM.Framework.Hosting.DotvvmPresenter.ProcessRequestCore(IDotvvmRequestContext context) in //src/Framework/Framework/Hosting/DotvvmPresenter.cs:line 330\r\n at DotVVM.Framework.Hosting.DotvvmPresenter.ProcessRequest(IDotvvmRequestContext context) in //src/Framework/Framework/Hosting/DotvvmPresenter.cs:line 84\r\n at DotVVM.Framework.Hosting.Middlewares.DotvvmRoutingMiddleware.Handle(IDotvvmRequestContext context) in //src/Framework/Framework/Hosting/Middlewares/DotvvmRoutingMiddleware.cs:line 133\r\n at DotVVM.Framework.Hosting.Middlewares.DotvvmRoutingMiddleware.Handle(IDotvvmRequestContext context) in //src/Framework/Framework/Hosting/Middlewares/DotvvmRoutingMiddleware.cs:line 146\r\n at DotVVM.Framework.Hosting.DotvvmMiddleware.Invoke(HttpContext context) in /_/src/Framework/Hosting.AspNetCore/Hosting/Middlewares/DotvvmMiddleware.cs:line 68"
}
Osekal jsem projekt na co nejmíň a chyba se neprojevila, tak to moc nechápu.
T.