Copied to clipboard

Flag this post as spam?

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


  • David Tregoning 63 posts 236 karma points
    Feb 17, 2015 @ 13:11
    David Tregoning
    0

    Partial view macro parameters and surface controllers

    The basis of what I am trying to achieve is to allow a macro to be inserted into a RTE with a parameter of employeeID. This will connect to a 3rd party database and pull the employee details from that database and render them within the copy of the Rich text editor. I have managed to connect and render the details into a view using MVC outside of Umbraco but I am having trouble getting my code to work within Umbraco.

    I started with using LINQ to SQL Classes to create my model EmployeeDetailsDataContext within visual Studio using a view within my database called vwPeopleProfiles.

    I then created my surface Controller EmployeeDetailsSurfaceController as follows:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using Test.Models;
    using Umbraco.Web.Mvc
    
    namespace Test.Controllers
    {
        public class EmployeeController : SurfaceController
        {
            public ActionResult Details(string id)
            {
                var dataContext = new EmployeeDetailsDataContext();
                var employee = (from e in dataContext.vwPeople_Profiles
                            where e.Employee_ID == id
                            select e).First();
    
                return View(employee);
            }
        }
    }
    

    This code was copied from my normal controller and the return references a details view but I don't know the correct syntax for return to reference a Macro.

    I have created a Partial View Macro File within Umbraco but was not sure how to call the SurfaceController and then render the results onto the page:

    @inherits Umbraco.Web.Macros.PartialViewMacroPage
    @if (Model.MacroParameters["employeeID"] != null)
    {
        //do something here to take the 'employeeID' macro parameter and pass it in to the 'Details' Action within the 'EmployeeDetailsSurfaceController' Surface controller
    }
    

    All the examples I can find on the net focus around form submitting with Macros and surface controllers and although I think I could be close to resolving this issue I am stuck, can anybody help?

  • user33 9 posts 56 karma points
    Feb 17, 2015 @ 16:10
    user33
    0

    Try returning as a partial view with a model and check ,

    return PartialView("Employee", new EmpModel());

  • David Tregoning 63 posts 236 karma points
    Feb 18, 2015 @ 15:53
    David Tregoning
    0

    I could not get that to work. Perhaps I should start at the beginning and ask what is the best way to just read (don't need to create, update or delete) a single record of data from a 3rd party database (not the database used for Umbraco)?

    Would it be LINQ to SQL Classes or PetaPoco, then I can try to get my head around the best method of displaying this data

  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" link below.

Please Sign in or register to post replies