Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • John Schuldt 6 posts 36 karma points
    Sep 11, 2013 @ 21:05
    John Schuldt
    0

    return JSON data from MVC controllers

    Trying to Extend Umbraco 4.11.10

    Hi I have an MVC application that use's mvc controller actions to render and post json data to the server. I am having a difficult time extending the umbraco frontend to allow for the Ajax calls.

    How can I extend the SurfaceControllers to actually return JSON data?

    How do you set up the controller action URLs in umbraco?

    thanks!

  • Dan Diplo 1554 posts 6205 karma points MVP 5x c-trib
    Sep 11, 2013 @ 21:08
    Dan Diplo
    0

    Can you upgrade to Umbraco 6.1 and then you can use the Web API controllers designed for this? See http://our.umbraco.org/documentation/Reference/WebApi/

  • John Schuldt 6 posts 36 karma points
    Sep 11, 2013 @ 21:15
    John Schuldt
    0

    We haven't launched, but we are stuck at 4.11.10 at the moment.. Any ideas on a workaround that just uses the umbraco SurfaceController extension class?

  • Andy Butland 422 posts 2334 karma points MVP 4x hq c-trib
    Sep 11, 2013 @ 22:06
    Andy Butland
    2

    Hi John

    I'm on 6. something, but using the MVC controller to return Json data.

    So I'd expect this to work as a method in your surface controller:

    public JsonResult GetJsonData()
    {
        return Json(new { Message = "Hello world" }, JsonRequestBehavior.AllowGet);
    }
    

    It's then routed via: /umbraco/surface/MyController/GetJsonData

    Hope that helps

    Andy

  • John Schuldt 6 posts 36 karma points
    Sep 12, 2013 @ 01:07
    John Schuldt
    0

    Thanks for the reply,

        [PluginController("DataSearch")]
        public class DataSearchSurfaceController : Umbraco.Web.Mvc.SurfaceController
        {      
            private DataFilterHelper dal = new DataFilterHelper();
            #region categories drop downs

            [HttpGet]
            public JsonResult GetCategories()
            {
                IEnumerable<CategoryModel> categ = dal.FindAllCategories();
                return Json(categ, JsonRequestBehavior.AllowGet);
            }
            #endregion

    }

    this wasn't routed to /umbraco/surface//GetCategories

    thanks!

     

  • Andy Butland 422 posts 2334 karma points MVP 4x hq c-trib
    Sep 12, 2013 @ 09:15
    Andy Butland
    0

    Just edited my post above - part of the URL I posted got eaten.

  • John Schuldt 6 posts 36 karma points
    Sep 12, 2013 @ 18:01
    John Schuldt
    0

    You're the best!

     

    umbraco/surface/(controller class name w/o Controller)/GetJsonData gets me that data now

  • Ibrahim Uslu 3 posts 25 karma points
    Oct 03, 2013 @ 21:30
    Ibrahim Uslu
    1

    Hi,

    I have a Controller, which har JsonResult method. I want to call this Json method from controller in my View. but it can not find the umbraco controller method. this works in pure MVC application.

     public class StoreSurfaceController: SurfaceController
        {
            [HttpPost]
            public JsonResult Checkout(ShoppingCartModel model)
            {
                string message = string.Format("Successfully processed {0} item(s).", model.CartItems.Count.ToString());
                return Json(new { Success = true, Message = message });
            }
        }

    Json to call controller from the view

      function PostData() {
            $.ajax({
                url: 'umbraco/surface/Store/Checkout',  //this is the umbraco surface path to controller action. problem her!!!!
                async: false,
                type: "POST",
                data: JSON.stringify(m_ShoppingCart),
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                error: function (jqXHR, textStatus, errorThrown) {
                    alert(jqXHR + "-" + textStatus + "-" + errorThrown);
                },
                success: function (data, textStatus, jqXHR) {
                    $("#Results").show();
                    $("#ResultMessage").html(data.Message);
                }
            });
        } 

     thanks in advance...

  • Andy Butland 422 posts 2334 karma points MVP 4x hq c-trib
    Oct 04, 2013 @ 09:14
    Andy Butland
    1

    Try umbraco/surface/StoreSurface/Checkout

Please Sign in or register to post replies

Write your reply to:

Draft