¿Cómo pasar valor dinámico en @ Url.Action?

He escrito siguiendo jquery en mi vista parcial:

    $.ajax({
        type: "POST",
        url: '@Url.Action("PostActionName", "ControllerName")',
        data: { Id: "01" },
        success: function(data)
            {
            if (data.success="true")
                {
                    window.location = '@Url.Action("GetActionName", "ControllerName")'
                }
            }
    });

El nombre de la Acción y el nombre del Controlador no son fijos, están obligados a cambiar según la vista en la que se coloque esta vista parcial. Tengo funciones para recuperar la acción de invocación y los nombres de los controladores, pero no estoy seguro de cómo puedo pasarlos en @ Url.Action.

A continuación se muestran las funciones de Javascript para obtener los nombres de las acciones y los controladores:

function ControllerName() {
            var pathComponents = window.location.pathname.split('/');
            var controllerName;
            if (pathComponents.length >= 2) {
                if (pathComponents[0] != '') {
                    controllerName = pathComponents[0];
                }
                else {
                    controllerName = pathComponents[1];
                }
            }
            return controllerName;
        }

        function ActionName() {
            var pathComponents = window.location.pathname.split('/');
            var actionName;
            if (pathComponents.length >= 2) {
                if (pathComponents[0] != '') {
                    actionName = pathComponents[1];
                }
                else {
                    actionName = pathComponents[2];
                }
            }
            return actionName;            
        }

Respuestas a la pregunta(3)

Su respuesta a la pregunta