Search code examples
asp.net-mvcepiserver

Get the currentBlock as parameter in method - EPiServer MVC


Greeting. I have a controller for my block containing this:

 public class QuestionBlockController : BlockController<QuestionBlock>
    {
        public override ActionResult Index(QuestionBlock currentBlock)
        {
            return PartialView(currentBlock);
        }

        public void Vote(QuestionBlock currentBlock)
        {
              //Do stuff
        }

The method Vote is invoked through an ajax call, seen in this View for the block:

@Ajax.ActionLink("Vote", "Vote", "QuestionBlock",
                        new AjaxOptions
                        {
                            HttpMethod = "POST"
                        }, new { @class = "btn btn-vote" })

The problem is that when I click the actionlink it invokes the method Vote but currentBlock is null.

If I debug the currentBlock for Index method it is correctly set with the currentBlock as the current BlockData object.

What am I missing?

Regards,

ChrisRun


Solution

  • I got the suggestion to pass the currentBlock contentreference in as a parameter value to the ajax request.This works fine.

    @Ajax.ActionLink("Vote", "Vote", "QuestionBlock", new {currentBlock = Model.ContentLink,
                            new AjaxOptions
                            {
                                HttpMethod = "POST"
                            }, new { @class = "btn btn-vote" })