This post shows you how you can get to the IPublishedContent item from a Content Pick Macro Parameter in Umbraco. It is a guest post by Nisreen Almasri from Sweden.
I feel my question is silly and can be answered straightforward but after googling and searching here and there, discover that nothing is silly with Umbraco:)
I have a login form and many types of members, according to the type of member (which group he belongs to) must be forwarded to a specific page. and because we have a multi-language website so I can use hardcoded URLs because the name of the page varies.
to summarize that, I have all related pages as macro parameters (content picker) but I need to reach the node id for each to use this code
Response.Redirect(library.NiceUrl(Convert.ToInt32(Id)));
I used this at the beginning
var urlDownload = Model.MacroParameters["urlDownload"];
But it returns the UDI, not the node ID, because my version of Umbraco has property value converters enabled.
"umb://document/f875c2c828d04a2dbdb2dcf80d841a9f"
Finally, the solution was using this piece of code:
var contDownload = Umbraco.TypedContent(urlDownload);
and I could reach the id easily...
Response.Redirect(library.NiceUrl(Convert.ToInt32(contDownload.Id)));
Here is the whole code:
@{ var urlDownload = Model.MacroParameters["urlDownload"]; var urlSale = Model.MacroParameters["urlSale"]; var urlExport = Model.MacroParameters["urlExport"]; var urlAD = Model.MacroParameters["urlAD"];
var contDownload = Umbraco.TypedContent(urlDownload); var contSale = Umbraco.TypedContent(urlSale); var contExport = Umbraco.TypedContent(urlExport); var contAD = Umbraco.TypedContent(urlAD);
var currentMember = User.Identity.Name;
var t = Roles.GetRolesForUser(currentMember).FirstOrDefault();
if (Members.GetCurrentLoginStatus().IsLoggedIn && Request.UrlReferrer != null) { switch (t) { case "Download": Response.Redirect(library.NiceUrl(Convert.ToInt32(contDownload.Id))); break; case "Sale": Response.Redirect(library.NiceUrl(Convert.ToInt32(contSale.Id))); break; case "Exporting": Response.Redirect(library.NiceUrl(Convert.ToInt32(contExport.Id))); break; default: Response.Redirect(library.NiceUrl(Convert.ToInt32(contAD.Id))); break; } } }
This post shows you how you can ignore a file in git locally without ignoring it from the repository…
Read PostThis post shows you how you can get the name of the picked item in Nested Content or Stacked Content…
Read PostIn this post I share my approach to using source control for my Umbraco website source code and medi…
Read PostThis post will show you how to solve the error "Could not load file or assembly 'Microsoft.CodeDom.P…
Read Post