Command binding with wrong po aktualizaci verze

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

[Expected DataContext path: ‘AkceList/[3]’ Command binding DataContext path: ‘AkceList/[0]’, {command: _root.DialogPrihlasit(_this.Id)}]
[Expected DataContext path: ‘AkceList/[3]’ Command binding DataContext path: ‘AkceList/[1]’, {command: _root.DialogPrihlasit(_this.Id)}]
[Expected DataContext path: ‘AkceList/[3]’ Command binding DataContext path: ‘AkceList/[2]’, {command: _root.DialogPrihlasit(_this.Id)}]

### Command binding with wrong binding id and correct validation path, DataContext path

[Expected internal binding id: ‘a+ym45Skw/us2V6t’ Command binding id: ‘s09YuvlbXMdTriG8’, {command: _root.DialogPrihlasit(_this.Id)}]

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ě.

funkční
< div Visible=“{value: MoznostPrihlasovani }”> <bp:Button Text=“Přihlásit” Click=“{command: _root.DialogPrihlasit(_this.Id)}” Type=“Success” />

Nefunkční
<%-- <bp:Button Text=“Přihlásit” Click=“{command: _root.DialogPrihlasit(_this.Id)}” Type=“Success” Visible=“{value: MoznostPrihlasovani }” /> --%>

Nevíte někdo čím to může být?
Děkuji T.

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

Upravil jsem trochu model, kvůli přenášeným datům, hodnotu MoznostPrihlasovani nastavuji v modelu na true a pořád chyba, ale s trochu jiným zněním.

DotVVM.Framework.Runtime.Commands.InvalidCommandInvocationException

Invalid command invocation - The specified command binding was not found.


Command binding with wrong binding id and correct validation path, DataContext path

  • [Expected internal binding id: ‘a+ym45Skw/us2V6t’ Command binding id: ‘s09YuvlbXMdTriG8’, {command: _root.DialogPrihlasit(_this.Id)}]

{

AdditionData:

[

{

Key:“Command binding with wrong binding id and correct validation path, DataContext path”

Value:

[

[Expected internal binding id: ‘a+ym45Skw/us2V6t’ Command binding id: ‘s09YuvlbXMdTriG8’, {command: _root.DialogPrihlasit(_this.Id)}]

]

}

]

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.

Pardón, zapomněl jsem na toto odpovědět. Ta druhá chyba už je něco jiného, ale vůbec nechápu kde se bere. Ty IDčka jsou přiřazené při kompilaci stránky, takže jen těžko můžou změnit bez restartu aplikace (i tak by samozřejmě měly být deterministické, ale v tom by mohly být bugy). Máte na stránce jenom jeden command s tím textem “_root.DialogPrihlasit(_this.Id)”, nebo je možné, že to z nějakého důvodu našlo nějaký druhý?