Join us this Friday for AI in Action at the Virtual Happy Hour! This free virtual event is open to all—enroll now on Academy and don’t miss out.

 

Input html helpers name generation after migration

Vote:
 

Hi, after migrating to CMS 12 we've noticed that the names of input elements have changed.

Where a name on a input element used to be "FirstName" we are now seeing it as "CurrentPage.AboveTheFoldContentArea.Content.Content.Content.Content.RightContent.FirstName"

Could anybody provide any insight please?

Code example

Where previously

public class TestViewModel
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

with the following view

@Html.TextboxFor(_ => _.FirstName)

would generate the following HTML

<input type="text" name="text" name="FirstName" />

after the upgrade we are now seeing the outputted html :

<input type="text" name="CurrentPage.AboveTheFoldContentArea.Content.Content.Content.Content.RightContent.FirstName">

The new controller which creates the View model

public class RequestCallbackBlockController : BlockComponent<TestBlock>
{
    protected override IViewComponentResult InvokeComponent(TestBlock currentContent)
    {
        var viewModel = new TestViewModel();
        return View("TestBlock.cshtml", viewModel);
    }
}

We are seeing the same behaviour using tag-helpers too.

#297906
Edited, Mar 08, 2023 1:26
Vote:
 

To update this further, a workaround we have found is to set HtmlFieldPrefix  to null in ViewData in every place where we use a form field.

ViewData.TemplateInfo.HtmlFieldPrefix = null;

This would seem an odd behaviour to have to override each time a form is used?

#297955
Mar 09, 2023 3:12
Vote:
 

This is something with MVC helper and nothing to do with Optimizely. But you can  add below in layout page or other global partial view?

ViewData.TemplateInfo.HtmlFieldPrefix = null;

So, you don't need to add it to all pages.

#298053
Mar 10, 2023 9:30
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.