You can hopefully get some more information if you turn on log4net logging on debug level for EPiServer.Web.TemplateResolver.
If you take in a dependency to TemplateResolver somewhere you can probably do something like this to help you debug.
var Template = _templateResolver.Resolve(httpContext, typeof(KeepUpdatedBlock), currentBlock, TemplateTypeCategories.MvcPartial, YourRenderingTag);
Thanks. I had some weirdness going on in my viewengine, that weren't visible in 7.0. Solved now!
Beaware that if your block type name matches view name - your controller may have been omitted. You would need to decorate that with TemplateDescriptor or implement IRenderTemplate<T> somehow, or name your view as partial (for instance starting with "_") and return view from controller explicitly.
Hi Thomaz, How did you resolved this issue. I got an error like yours today under upgrading. Could you give me a clue?
Thanks.
T.Dzung
TDLA. I also just run into this and doing like Valdis said helped me. Meaning that I renamed my block to start with a _ (common MVC naming).
Thank you Henrik! I just did like you/Vadis said and the error are gone, it's working! :-)
We encountered this exact problem too, and Valdis answer gave the solution.
Maybe this should be changed so that the if you have created a custom controller for a block it is used even if there is a view matching the name?
I'm upgrading to 7.5 and having some issues getting a block to work. I have a local block in a page type such as:
1publicvirtualKeepUpdatedBlock KeepUpdated {get;set; }I render it using:
1@Html.PropertyFor(x => x.CurrentPage.KeepUpdated)The block has a controller:
01publicclassKeepUpdatedController : BlockController<KeepUpdatedBlock>02{03publicoverrideActionResult Index(KeepUpdatedBlock currentBlock)04{05KeepUpdatedViewModel model =newKeepUpdatedViewModel()06{07...08};0910returnPartialView("KeepUpdatedBlock", model);11}Problem is, the controller is not obviously not used and I can't figure out why.
The model item passed into the dictionary is of type 'Castle.Proxies.KeepUpdatedBlockProxy', but this dictionary requires a model item of type 'xxx.Web.Models.ViewModels.KeepUpdatedViewModel'.
Clues?