Virtual Happy Hour this month, Jun 28, we'll be getting a sneak preview at our soon to launch SaaS CMS!

Try our conversational search powered by Generative AI!

Ajax request MVC refresh shared block



I'm searching for a solution to refresh a shared block (Hml) when I perform an ajax request. In my block (controller) I need to retrieve some data and then I would like to replace all the html in the block view. 


Aug 12, 2013 10:47

You can just use jquery ajax call and return partial view (just use local block view in shared folder).

Aug 14, 2013 5:44

I'm actually having similar challenge, I have custom form in block, want to post it with Ajax back to Block controller's HttpPost action and as a return value I would like to get only the Partial View rendered by block controller. The thing I don't yet understand is how to call block controller directly without have the whole page controller executed? How to generate URL that maps directly to block controller instead of page controller?

Aug 14, 2013 9:05

Block controller return your block view ,url is /controller/action. you can use jquery to call ajax such as

                url: "/Controller/Action/",
                data: { ContactName: $("#ContactName").val(), ContactEmail: $("#ContactEmail").val(), ContactPhone: $("#ContactPhone").val(), ContactComments: $("#ContactComments").val() },
                type: "POST",
                error: function (data) {
                    return false;
                success: function (data) {



The id contact is map to a container (div) which your block contains in.


Aug 14, 2013 10:28

Thanks, but can't get it to work. I have block with name "CoolFormBlock". I'm using following code to get correct route/url to my block controller:

RouteTable.Routes.GetVirtualPathForPartialRouted(Model.CurrentBlock, null).GetUrl()

Which returns "/CoolFormBlock/Index?length=73" but with this url I just get 404. What am I missing here? Is there some additional magic I need to add to the block controller to make it routable?

Aug 14, 2013 10:45

Thanks for the replies. I solved the routing by adding this to the global.asax:

"blockController", // Route name
"Blocks/{controller}/{action}", // URL with parameters
new { action = "Index" });

If I call the url /blocks/{controller}/Index a breakpoint hits in my controller. The only thing is that the block model of the Index method is null, do you know how to solve this?

Aug 14, 2013 14:49

I have same Patrick issue I don't know how to prevent block model to be null. Anyone have an idea about this?

Jul 09, 2015 4:42
This thread is locked and should be used for reference only. Please use the Episerver CMS 7 and earlier versions forum to open new discussions.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.