Areas of interest
Electrical Automation
Today, virtually all automation systems are electrically based. As a result, such systems require sensors, power supplies, control cabinet equipment and cabling systems that interconnect individual components, as well as safety systems that prevent damage to people, machines and products. Equally important are solutions such as cable assembly, customized control panels and enclosures, and measurement and test equipment.
If you are a machine builder, automation technician, engineer, marine engineer or designer involved in automation, the Electrical Automation exhibition area is where you will find the latest products and solutions for building and operating all types of automated systems.

News and inspiration within Electrical Automation
5. May 2026 | Pilz Skandinavien
Safe overview of the machine lifecycle with the MYZEL Lifecycle Platform - one platform for human and machine
With its new MYZEL Lifecycle Platform, automation expert Pilz is offering a Software-as-a-Service solution for centralised management of machinery and personnel. The digital platform helps production
New suppliers within Electrical Automation
Error executing template "Designs/exhibition_site/QueryPublisher/partials/mch365-exhibitor-item.cshtml" System.ArgumentException: An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at Co3.MCH.Website.Frontend.Repositories.BaseRepository.GetAssetIds(Profile profile, String type, String cacheKey, MCH365ViewType viewType) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Repositories\BaseRepository.cs:line 53 at Co3.MCH.Website.Frontend.Repositories.ContactPersonRepository.GetContactPersons(Profile profile, MCH365ViewType viewType) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Repositories\ContactPersonRepository.cs:line 38 at Co3.MCH.Website.Frontend.Services.MCH365.ContactPersonService.GetContactPersons(Profile profile, MCH365ViewType viewType) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Services\MCH365\ContactPersonService.cs:line 148 at Co3.MCH.Website.Frontend.Services.MCH365.ContactPersonService.GetContactPersonProducts(Profile profile, MCH365ViewType viewType) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Services\MCH365\ContactPersonService.cs:line 444 at Co3.MCH.Website.Frontend.Models.Frontend.Ecommerce.ProfileProduct.get_ContactPersons() in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Models\Frontend\Ecommerce\ProfileProduct.cs:line 45 at CompiledRazorTemplates.Dynamic.RazorEngine_d8d3aaaae3f54f9e8093215373eb8fb5.Execute() in E:\Websites\mch365.espresso5.dk\Files\Templates\Designs\exhibition_site\QueryPublisher\partials\mch365-exhibitor-item.cshtml:line 27 at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader) at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer) at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter) at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template) at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template) at Dynamicweb.Rendering.Template.RenderRazorTemplate()1 @using Co3.Espresso.Website.Services 2 @using Co3.MCH.Data.Models.MCH365 3 @using Co3.MCH.Website.Frontend.Models.Frontend.Ecommerce 4 @using Dynamicweb 5 @using ProductService = Co3.MCH.Website.Frontend.Services.Ecommerce.ProductService 6 @inherits Dynamicweb.Rendering.ViewModelTemplate<Co3.MCH.Website.Frontend.Models.Frontend.Ecommerce.ProfileProduct> 7 8 @{ 9 bool hasPresentation = Model.HasPresentation; 10 bool companyBookMeeting = Model.Contact.BookMeeting; 11 bool companyDirectContact = Model.Contact.DirectContact; 12 string companyEmail = Model.Company.Email; 13 IEnumerable<BoothInfo> booths = Model.Booths; 14 15 List<ContactPersonProduct> contactPersons; 16 17 string profileText; 18 19 20 if (hasPresentation) 21 { 22 contactPersons = Model.Presentation.ContactPersons.Products.Select(p => (ContactPersonProduct)p).ToList(); 23 profileText = ProductService.Instance.GetTruncatedFormattedString(Model.Presentation.DescriptionFormatted, 650); 24 } 25 else 26 { 27 contactPersons = Model.ContactPersons.Products.Select(p => (ContactPersonProduct)p).ToList(); 28 profileText = ProductService.Instance.GetTruncatedFormattedString(Model.Company.DescriptionFormatted, 650); 29 } 30 31 string listViewMode = string.IsNullOrEmpty(Context.Current.Session["ListViewMode"]?.ToString()) ? "expanded" : Context.Current.Session["ListViewMode"]?.ToString(); 32 if (listViewMode == "condensed") 33 { 34 <div data-listViewMode="@listViewMode" class="w-100 bg-ultralight border-radius mt-half e-block-link e-productlist-item js-e-block-link js-e-productlist-item js-e-productlist-item-@Model.Id" data-product-id="@Model.Id" data-variant-id="@Model.VariantId"> 35 <div class="e-productlist-item-container container-fluid h-100"> 36 <div class="row h-100"> 37 <div class="col-12 p-1 mch365-productlist-item-content-wrapper item-condensed flex-row"> 38 <div class="item-condensed-title"> 39 <div class="d-flex mr-3"> 40 <div class="condensed-list-logo mr-1"> 41 @if (Model?.Company?.Logo != null) 42 { 43 string logoImage = Model.Company.Logo; 44 string companyBackgroundColor = Model.Company.BrandColor; 45 string noCompanyInfo = ""; 46 string textLight = "e-text-light"; 47 if (string.IsNullOrEmpty(logoImage) && string.IsNullOrEmpty(companyBackgroundColor)) 48 { 49 noCompanyInfo = "bg-light"; 50 textLight = "text-muted"; 51 } 52 53 string noLogoBackground = ""; 54 if (string.IsNullOrEmpty(logoImage) && !string.IsNullOrEmpty(companyBackgroundColor)) 55 { 56 noLogoBackground = "style=\"background:" + companyBackgroundColor + ";\""; 57 } 58 59 <div class="e-productlist-item-image-container @noCompanyInfo mb-0" @noLogoBackground> 60 <a class="e-productlist-item-image-wrapper justify-content-center align-items-center d-flex @textLight" href="@Model.Link"> 61 @{ 62 if (string.IsNullOrEmpty(logoImage)) 63 { 64 <span class="h1 mb-0">@Model.Company.Name.Substring(0, 1).ToLower()</span> 65 } 66 else 67 { 68 <img alt="@Model.Company.Name" class="e-productlist-item-image w-100 p-1" src="@logoImage"/> 69 } 70 } 71 72 </a> 73 </div> 74 } 75 </div> 76 <div> 77 <h4 class="mb-0 font-weight-extrabold line-clamp-1">@Model.Company.Name</h4> 78 <p class="small line-height-sm mb-0 mt-1 line-clamp-2"> 79 @profileText 80 </p> 81 </div> 82 </div> 83 </div> 84 <div class="item-condensed-booth"> 85 @if (booths != null) 86 { 87 if (booths.Count() == 1) 88 { 89 BoothInfo booth = booths.FirstOrDefault(); 90 if (booth.Hall != null && booth.Booth != null) 91 { 92 <p class="small mb-0"> 93 <small>@Translate("MCH365 - Profile booth - Text", "Stand")</small> 94 </p> 95 <h4 class="mt-half mb-0 font-weight-extrabold mr-xl-2" style="white-space: nowrap"> 96 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number </span> 97 </h4> 98 } 99 } 100 else 101 { 102 <div class="align-items-baseline d-inline-flex flex-wrap justify-content-end justify-content-xl-start mb-1"> 103 <p class="small w-100 mb-0"> 104 <small>@Translate("MCH365 - Profile booths - Text", "Stande")</small> 105 </p> 106 @foreach (BoothInfo booth in booths) 107 { 108 if (booth.Hall != null && booth.Booth != null) 109 { 110 <h4 class="font-weight-extrabold mb-0 ml-1 ml-xl-0 mr-xl-1 mt-half text-muted" style="white-space: nowrap"> 111 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number</span> 112 </h4> 113 } 114 } 115 </div> 116 } 117 } 118 </div> 119 <div class="item-condensed-subasset"> 120 @if (Model.SubAssetInfo.Count > 0) 121 { 122 <p class="mb-0 font-weight-bold"> 123 <small>@Model.SubAssetInfo.Count @Translate("MCH365 - Profile listItem SubAssetInfo - Text", "opslag")</small> 124 </p> 125 <p class="small mb-0 mt-half font-weight-normal d-none d-md-block">@Translate("MCH365 - Profile listItem latestUpdate - Text", "seneste fra") @Model.SubAssetInfo.LatestDate.ToString("d. MMMM yyyy")</p> 126 } 127 </div> 128 <div class="item-condensed-contacts"> 129 @if (contactPersons.Any()) 130 { 131 <div class="mt-auto"> 132 <p class="d-block mb-0 text-right"> 133 <small>@contactPersons.Count() @Translate("MCH365 - Profile listItem contactPersons - Text", "kontakt­personer")</small> 134 </p> 135 </div> 136 } 137 </div> 138 <div class="item-condensed-options"> 139 @if (!string.IsNullOrEmpty(companyEmail)) 140 { 141 <div class="d-flex small align-items-center justify-content-end mch365-custom-productlist-cta"> 142 @if (companyDirectContact) 143 { 144 <span class="mch365-custom-productlist-cta-icon"> 145 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-email-action-edit@48x48.svg" title="@Translate("MCH365 - Profile listItem contactDirect - Text", "Direkte kontakt")" alt="" role="presentation"/> 146 </span> 147 } 148 @if (companyBookMeeting) 149 { 150 <span class="mch365-custom-productlist-cta-icon"> 151 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-calendar-edit@48x48.svg" title="@Translate("MCH365 - Profile listItem bookMeeting - Text", "Møde­booking")" alt="" role="presentation"/> 152 </span> 153 } 154 </div> 155 } 156 </div> 157 </div> 158 </div> 159 </div> 160 </div> 161 } 162 else 163 { 164 <div class="w-100 bg-ultralight border-radius my-1 e-block-link e-productlist-item js-e-block-link js-e-productlist-item js-e-productlist-item-@Model.Id" data-product-id="@Model.Id" data-variant-id="@Model.VariantId"> 165 <div class="e-productlist-item-container container-fluid h-100"> 166 <div class="row h-100"> 167 <div class="col-9 col-lg-7 col-xl-8 p-1 p-lg-2 mch365-productlist-item-content-wrapper"> 168 <h3 class="mb-0 font-weight-extrabold">@Model.Company.Name</h3> 169170 @if (booths != null) 171 { 172 if (booths.Count() == 1) 173 { 174 BoothInfo booth = booths.FirstOrDefault(); 175 if (booth.Hall != null && booth.Booth != null) 176 { 177 <h3 class="mt-0 mb-1 font-weight-extrabold"> 178 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number</span> 179 </h3> 180 } 181 } 182 else 183 { 184 <div class="d-inline-flex flex-wrap mb-1"> 185 @foreach (BoothInfo booth in booths) 186 { 187 if (booth.Hall != null && booth.Booth != null) 188 { 189 <h3 class="mt-0 mb-0 font-weight-extrabold mr-1" style="white-space: nowrap"> 190 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number</span> 191 </h3> 192 } 193 } 194 </div> 195 } 196 } 197198 <p class="small line-height-sm mb-2 mt-1 line-clamp-10"> 199 @profileText 200 </p> 201202203 @if (Model.SubAssetInfo.Count > 0) 204 { 205 <span class="mch365-productlist-item-bulletin-wrapper mt-auto"> 206 <h4 class="mb-0">@Model.SubAssetInfo.Count @Translate("MCH365 - Profile listItem SubAssetInfo - Text", "opslag")</h4> 207 <p class="small mb-0 mt-half font-weight-normal">@Translate("MCH365 - Profile listItem latestUpdate - Text", "seneste fra") @Model.SubAssetInfo.LatestDate.ToString("d. MMMM yyyy")</p> 208 </span> 209 } 210211 </div> 212 <div class="col-3 col-lg-5 col-xl-4 bg-light p-1 p-lg-2 mch365-productlist-item-sidebar-wrapper"> 213214 @if (Model?.Company?.Logo != null) 215 { 216 string logoImage = Model.Company.Logo; 217 string companyBackgroundColor = Model.Company.BrandColor; 218219 string noCompanyInfo = ""; 220 string textLight = "e-text-light"; 221222 if (string.IsNullOrEmpty(logoImage) && string.IsNullOrEmpty(companyBackgroundColor)) 223 { 224 noCompanyInfo = "bg-light"; 225 textLight = "text-muted"; 226 } 227228 string noLogoBackground = ""; 229 if (string.IsNullOrEmpty(logoImage) && !string.IsNullOrEmpty(companyBackgroundColor)) 230 { 231 noLogoBackground = "style=\"background:" + companyBackgroundColor + ";\""; 232 } 233234 <div class="e-productlist-item-image-container @noCompanyInfo" @noLogoBackground> 235 <a class="e-productlist-item-image-wrapper justify-content-center align-items-center d-flex @textLight" href="@Model.Link"> 236 @{ 237 if (string.IsNullOrEmpty(logoImage)) 238 { 239 <span class="h1 mb-0">@Model.Company.Name.Substring(0, 1).ToLower()</span> 240 } 241 else 242 { 243 <img alt="@Model.Company.Name" class="e-productlist-item-image w-100 p-1" src="@logoImage"/> 244 } 245 } 246247 </a> 248 </div> 249 } 250251 @if (!string.IsNullOrEmpty(companyEmail)) 252 { 253 <div class="small flex-column mb-2"> 254 @if (companyDirectContact) 255 { 256 <span class="d-flex small font-weight-normal mb-1 align-items-center text-center mch365-custom-productlist-cta"> 257 <span class="mch365-custom-productlist-cta-icon"> 258 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-email-action-edit@48x48.svg" alt="" role="presentation"/> 259 </span><span>@Translate("MCH365 - Profile listItem contactDirect - Text", "Direkte kontakt")</span> 260 </span> 261 } 262 @if (companyBookMeeting) 263 { 264 <span class="d-flex small font-weight-normal mb-1 align-items-center text-center mch365-custom-productlist-cta"> 265 <span class="mch365-custom-productlist-cta-icon"> 266 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-calendar-edit@48x48.svg" alt="" role="presentation"/> 267 </span><span>@Translate("MCH365 - Profile listItem bookMeeting - Text", "Møde­booking")</span> 268 </span> 269 } 270 </div> 271 } 272 @if (contactPersons.Any()) 273 { 274 <div class="mt-auto"> 275 <ul class="mch365-productlist-custom-contact-persons"> 276277 @foreach (ContactPersonProduct contactPerson in contactPersons.OrderBy(cp => cp.Sort).Take(3)) 278 { 279 string noImageClasses = ""; 280 string contactPersonImage = contactPerson.Image; 281 if (string.IsNullOrEmpty(contactPersonImage)) 282 { 283 contactPersonImage = "/Files/Templates/Designs/mch365_admin/_assets/img/mch365-noimage.svg"; 284 noImageClasses = "bg-white"; 285 } 286287 <li class="animate animate-triggered fadeIn animate-show @noImageClasses" style="background-image: url('/admin/public/getimage.ashx?Image=@contactPersonImage&Width=100&Height=100&Format=webp&Quality=75&Crop=0');" title="@contactPerson.Name"></li> 288 } 289290 @if (contactPersons.Count() > 3) 291 { 292 <li class="mch365-productlist-custom-contact-persons-add"> </li> 293 } 294295 </ul> 296 <p class="d-block mb-0 mt-1 small text-center"> 297 <small>@contactPersons.Count() @Translate("MCH365 - Profile listItem contactPersons - Text", "kontakt­personer")</small> 298 </p> 299 </div> 300 } 301 </div> 302 </div> 303 </div> 304 </div> 305 } 306 }
Ahlsell A/S
B 1052
Ahlsell Danmark is a partner for those who work in manufacturing, installing, building, repairing and maintaining. With a wide selection of products and services, specialist knowledge and world-class logistics, it is our job to make our professional customers' everyday lives easier, so that they can implement their plans and keep what they promise.We consider ourselves a professional ally and take responsibility for helping our customers in a world where the only constant is change. With our suppliers behind us, we are always at the forefront, so that together with our customers we can react to changed requirements and new regulations - and m
Error executing template "Designs/exhibition_site/QueryPublisher/partials/mch365-exhibitor-item.cshtml" System.ArgumentException: An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at Co3.MCH.Website.Frontend.Repositories.BaseRepository.GetAssetIds(Profile profile, String type, String cacheKey, MCH365ViewType viewType) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Repositories\BaseRepository.cs:line 53 at Co3.MCH.Website.Frontend.Repositories.CaseRepository.GetCases(Profile profile, MCH365ViewType viewType) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Repositories\CaseRepository.cs:line 95 at Co3.MCH.Website.Frontend.Services.MCH365.CaseService.GetCases(Profile profile, MCH365ViewType viewType) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Services\MCH365\CaseService.cs:line 164 at Co3.MCH.Website.Frontend.Services.MCH365.ProfileService.GetProfileSubAssetInfo(Profile profile) in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Services\MCH365\ProfileService.cs:line 114 at Co3.MCH.Website.Frontend.Models.Frontend.Ecommerce.ProfileProduct.get_SubAssetInfo() in C:\Users\ThomasLarsen\source\repos\co3.mch\Co3.MCH.Website.Frontend\Models\Frontend\Ecommerce\ProfileProduct.cs:line 55 at CompiledRazorTemplates.Dynamic.RazorEngine_d8d3aaaae3f54f9e8093215373eb8fb5.Execute() in E:\Websites\mch365.espresso5.dk\Files\Templates\Designs\exhibition_site\QueryPublisher\partials\mch365-exhibitor-item.cshtml:line 203 at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader) at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag) at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer) at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter) at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template) at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template) at Dynamicweb.Rendering.Template.RenderRazorTemplate()1 @using Co3.Espresso.Website.Services 2 @using Co3.MCH.Data.Models.MCH365 3 @using Co3.MCH.Website.Frontend.Models.Frontend.Ecommerce 4 @using Dynamicweb 5 @using ProductService = Co3.MCH.Website.Frontend.Services.Ecommerce.ProductService 6 @inherits Dynamicweb.Rendering.ViewModelTemplate<Co3.MCH.Website.Frontend.Models.Frontend.Ecommerce.ProfileProduct> 7 8 @{ 9 bool hasPresentation = Model.HasPresentation; 10 bool companyBookMeeting = Model.Contact.BookMeeting; 11 bool companyDirectContact = Model.Contact.DirectContact; 12 string companyEmail = Model.Company.Email; 13 IEnumerable<BoothInfo> booths = Model.Booths; 14 15 List<ContactPersonProduct> contactPersons; 16 17 string profileText; 18 19 20 if (hasPresentation) 21 { 22 contactPersons = Model.Presentation.ContactPersons.Products.Select(p => (ContactPersonProduct)p).ToList(); 23 profileText = ProductService.Instance.GetTruncatedFormattedString(Model.Presentation.DescriptionFormatted, 650); 24 } 25 else 26 { 27 contactPersons = Model.ContactPersons.Products.Select(p => (ContactPersonProduct)p).ToList(); 28 profileText = ProductService.Instance.GetTruncatedFormattedString(Model.Company.DescriptionFormatted, 650); 29 } 30 31 string listViewMode = string.IsNullOrEmpty(Context.Current.Session["ListViewMode"]?.ToString()) ? "expanded" : Context.Current.Session["ListViewMode"]?.ToString(); 32 if (listViewMode == "condensed") 33 { 34 <div data-listViewMode="@listViewMode" class="w-100 bg-ultralight border-radius mt-half e-block-link e-productlist-item js-e-block-link js-e-productlist-item js-e-productlist-item-@Model.Id" data-product-id="@Model.Id" data-variant-id="@Model.VariantId"> 35 <div class="e-productlist-item-container container-fluid h-100"> 36 <div class="row h-100"> 37 <div class="col-12 p-1 mch365-productlist-item-content-wrapper item-condensed flex-row"> 38 <div class="item-condensed-title"> 39 <div class="d-flex mr-3"> 40 <div class="condensed-list-logo mr-1"> 41 @if (Model?.Company?.Logo != null) 42 { 43 string logoImage = Model.Company.Logo; 44 string companyBackgroundColor = Model.Company.BrandColor; 45 string noCompanyInfo = ""; 46 string textLight = "e-text-light"; 47 if (string.IsNullOrEmpty(logoImage) && string.IsNullOrEmpty(companyBackgroundColor)) 48 { 49 noCompanyInfo = "bg-light"; 50 textLight = "text-muted"; 51 } 52 53 string noLogoBackground = ""; 54 if (string.IsNullOrEmpty(logoImage) && !string.IsNullOrEmpty(companyBackgroundColor)) 55 { 56 noLogoBackground = "style=\"background:" + companyBackgroundColor + ";\""; 57 } 58 59 <div class="e-productlist-item-image-container @noCompanyInfo mb-0" @noLogoBackground> 60 <a class="e-productlist-item-image-wrapper justify-content-center align-items-center d-flex @textLight" href="@Model.Link"> 61 @{ 62 if (string.IsNullOrEmpty(logoImage)) 63 { 64 <span class="h1 mb-0">@Model.Company.Name.Substring(0, 1).ToLower()</span> 65 } 66 else 67 { 68 <img alt="@Model.Company.Name" class="e-productlist-item-image w-100 p-1" src="@logoImage"/> 69 } 70 } 71 72 </a> 73 </div> 74 } 75 </div> 76 <div> 77 <h4 class="mb-0 font-weight-extrabold line-clamp-1">@Model.Company.Name</h4> 78 <p class="small line-height-sm mb-0 mt-1 line-clamp-2"> 79 @profileText 80 </p> 81 </div> 82 </div> 83 </div> 84 <div class="item-condensed-booth"> 85 @if (booths != null) 86 { 87 if (booths.Count() == 1) 88 { 89 BoothInfo booth = booths.FirstOrDefault(); 90 if (booth.Hall != null && booth.Booth != null) 91 { 92 <p class="small mb-0"> 93 <small>@Translate("MCH365 - Profile booth - Text", "Stand")</small> 94 </p> 95 <h4 class="mt-half mb-0 font-weight-extrabold mr-xl-2" style="white-space: nowrap"> 96 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number </span> 97 </h4> 98 } 99 } 100 else 101 { 102 <div class="align-items-baseline d-inline-flex flex-wrap justify-content-end justify-content-xl-start mb-1"> 103 <p class="small w-100 mb-0"> 104 <small>@Translate("MCH365 - Profile booths - Text", "Stande")</small> 105 </p> 106 @foreach (BoothInfo booth in booths) 107 { 108 if (booth.Hall != null && booth.Booth != null) 109 { 110 <h4 class="font-weight-extrabold mb-0 ml-1 ml-xl-0 mr-xl-1 mt-half text-muted" style="white-space: nowrap"> 111 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number</span> 112 </h4> 113 } 114 } 115 </div> 116 } 117 } 118 </div> 119 <div class="item-condensed-subasset"> 120 @if (Model.SubAssetInfo.Count > 0) 121 { 122 <p class="mb-0 font-weight-bold"> 123 <small>@Model.SubAssetInfo.Count @Translate("MCH365 - Profile listItem SubAssetInfo - Text", "opslag")</small> 124 </p> 125 <p class="small mb-0 mt-half font-weight-normal d-none d-md-block">@Translate("MCH365 - Profile listItem latestUpdate - Text", "seneste fra") @Model.SubAssetInfo.LatestDate.ToString("d. MMMM yyyy")</p> 126 } 127 </div> 128 <div class="item-condensed-contacts"> 129 @if (contactPersons.Any()) 130 { 131 <div class="mt-auto"> 132 <p class="d-block mb-0 text-right"> 133 <small>@contactPersons.Count() @Translate("MCH365 - Profile listItem contactPersons - Text", "kontakt­personer")</small> 134 </p> 135 </div> 136 } 137 </div> 138 <div class="item-condensed-options"> 139 @if (!string.IsNullOrEmpty(companyEmail)) 140 { 141 <div class="d-flex small align-items-center justify-content-end mch365-custom-productlist-cta"> 142 @if (companyDirectContact) 143 { 144 <span class="mch365-custom-productlist-cta-icon"> 145 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-email-action-edit@48x48.svg" title="@Translate("MCH365 - Profile listItem contactDirect - Text", "Direkte kontakt")" alt="" role="presentation"/> 146 </span> 147 } 148 @if (companyBookMeeting) 149 { 150 <span class="mch365-custom-productlist-cta-icon"> 151 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-calendar-edit@48x48.svg" title="@Translate("MCH365 - Profile listItem bookMeeting - Text", "Møde­booking")" alt="" role="presentation"/> 152 </span> 153 } 154 </div> 155 } 156 </div> 157 </div> 158 </div> 159 </div> 160 </div> 161 } 162 else 163 { 164 <div class="w-100 bg-ultralight border-radius my-1 e-block-link e-productlist-item js-e-block-link js-e-productlist-item js-e-productlist-item-@Model.Id" data-product-id="@Model.Id" data-variant-id="@Model.VariantId"> 165 <div class="e-productlist-item-container container-fluid h-100"> 166 <div class="row h-100"> 167 <div class="col-9 col-lg-7 col-xl-8 p-1 p-lg-2 mch365-productlist-item-content-wrapper"> 168 <h3 class="mb-0 font-weight-extrabold">@Model.Company.Name</h3> 169170 @if (booths != null) 171 { 172 if (booths.Count() == 1) 173 { 174 BoothInfo booth = booths.FirstOrDefault(); 175 if (booth.Hall != null && booth.Booth != null) 176 { 177 <h3 class="mt-0 mb-1 font-weight-extrabold"> 178 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number</span> 179 </h3> 180 } 181 } 182 else 183 { 184 <div class="d-inline-flex flex-wrap mb-1"> 185 @foreach (BoothInfo booth in booths) 186 { 187 if (booth.Hall != null && booth.Booth != null) 188 { 189 <h3 class="mt-0 mb-0 font-weight-extrabold mr-1" style="white-space: nowrap"> 190 @booth.Hall.Name <span class="text-downsize-notched">@booth.Booth.Number</span> 191 </h3> 192 } 193 } 194 </div> 195 } 196 } 197198 <p class="small line-height-sm mb-2 mt-1 line-clamp-10"> 199 @profileText 200 </p> 201202203 @if (Model.SubAssetInfo.Count > 0) 204 { 205 <span class="mch365-productlist-item-bulletin-wrapper mt-auto"> 206 <h4 class="mb-0">@Model.SubAssetInfo.Count @Translate("MCH365 - Profile listItem SubAssetInfo - Text", "opslag")</h4> 207 <p class="small mb-0 mt-half font-weight-normal">@Translate("MCH365 - Profile listItem latestUpdate - Text", "seneste fra") @Model.SubAssetInfo.LatestDate.ToString("d. MMMM yyyy")</p> 208 </span> 209 } 210211 </div> 212 <div class="col-3 col-lg-5 col-xl-4 bg-light p-1 p-lg-2 mch365-productlist-item-sidebar-wrapper"> 213214 @if (Model?.Company?.Logo != null) 215 { 216 string logoImage = Model.Company.Logo; 217 string companyBackgroundColor = Model.Company.BrandColor; 218219 string noCompanyInfo = ""; 220 string textLight = "e-text-light"; 221222 if (string.IsNullOrEmpty(logoImage) && string.IsNullOrEmpty(companyBackgroundColor)) 223 { 224 noCompanyInfo = "bg-light"; 225 textLight = "text-muted"; 226 } 227228 string noLogoBackground = ""; 229 if (string.IsNullOrEmpty(logoImage) && !string.IsNullOrEmpty(companyBackgroundColor)) 230 { 231 noLogoBackground = "style=\"background:" + companyBackgroundColor + ";\""; 232 } 233234 <div class="e-productlist-item-image-container @noCompanyInfo" @noLogoBackground> 235 <a class="e-productlist-item-image-wrapper justify-content-center align-items-center d-flex @textLight" href="@Model.Link"> 236 @{ 237 if (string.IsNullOrEmpty(logoImage)) 238 { 239 <span class="h1 mb-0">@Model.Company.Name.Substring(0, 1).ToLower()</span> 240 } 241 else 242 { 243 <img alt="@Model.Company.Name" class="e-productlist-item-image w-100 p-1" src="@logoImage"/> 244 } 245 } 246247 </a> 248 </div> 249 } 250251 @if (!string.IsNullOrEmpty(companyEmail)) 252 { 253 <div class="small flex-column mb-2"> 254 @if (companyDirectContact) 255 { 256 <span class="d-flex small font-weight-normal mb-1 align-items-center text-center mch365-custom-productlist-cta"> 257 <span class="mch365-custom-productlist-cta-icon"> 258 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-email-action-edit@48x48.svg" alt="" role="presentation"/> 259 </span><span>@Translate("MCH365 - Profile listItem contactDirect - Text", "Direkte kontakt")</span> 260 </span> 261 } 262 @if (companyBookMeeting) 263 { 264 <span class="d-flex small font-weight-normal mb-1 align-items-center text-center mch365-custom-productlist-cta"> 265 <span class="mch365-custom-productlist-cta-icon"> 266 <img src="/Files/Templates/Designs/exhibition_site/_assets/img/streamline/streamline-icon-calendar-edit@48x48.svg" alt="" role="presentation"/> 267 </span><span>@Translate("MCH365 - Profile listItem bookMeeting - Text", "Møde­booking")</span> 268 </span> 269 } 270 </div> 271 } 272 @if (contactPersons.Any()) 273 { 274 <div class="mt-auto"> 275 <ul class="mch365-productlist-custom-contact-persons"> 276277 @foreach (ContactPersonProduct contactPerson in contactPersons.OrderBy(cp => cp.Sort).Take(3)) 278 { 279 string noImageClasses = ""; 280 string contactPersonImage = contactPerson.Image; 281 if (string.IsNullOrEmpty(contactPersonImage)) 282 { 283 contactPersonImage = "/Files/Templates/Designs/mch365_admin/_assets/img/mch365-noimage.svg"; 284 noImageClasses = "bg-white"; 285 } 286287 <li class="animate animate-triggered fadeIn animate-show @noImageClasses" style="background-image: url('/admin/public/getimage.ashx?Image=@contactPersonImage&Width=100&Height=100&Format=webp&Quality=75&Crop=0');" title="@contactPerson.Name"></li> 288 } 289290 @if (contactPersons.Count() > 3) 291 { 292 <li class="mch365-productlist-custom-contact-persons-add"> </li> 293 } 294295 </ul> 296 <p class="d-block mb-0 mt-1 small text-center"> 297 <small>@contactPersons.Count() @Translate("MCH365 - Profile listItem contactPersons - Text", "kontakt­personer")</small> 298 </p> 299 </div> 300 } 301 </div> 302 </div> 303 </div> 304 </div> 305 } 306 }
Cases from Electrical Automation
- Case
30. April 2026 | IMI
- Case
30. April 2026 | IMI
- Case
24. September 2025 | Pilz Skandinavien
Worry-free access management
Safer and more Secure on the machine
The operating and safety concept at Starrag Heckert was one of the areas under scrutiny when updating the Heckert compact machinery. Operator errors and manipul
Latest products within Electrical Automation

- At the exhibition

Pilz Skandinavien
IndustrialPI – Industrial PC

- At the exhibition

LINAK Danmark A/S
LA21

- At the exhibition

Pilz Skandinavien



