ASPNET MVC 5 Html helper Метод действия просмотреть результаты ввода id отсутствует (иногда..) Возможная ошибка?

Чтобы воссоздать проблему, возникшую у меня, я установил два простых действия с контроллером, два представления и модель представления:

Действие MultiForms (в классе контроллера формы)

public class FormController : Controller
{
    [HttpGet]
    public ActionResult MultiForms()
    {
        return View("MultiForms");
    }

    // ...

MultiForms.cshtml - вид бритвы

@Html.Action("MyFormGet", "Form")

Обратите внимание, что в методе действий я вызываю метод контроллера, который возвращает частичный вид формы.

Действие MyFormGet

[HttpGet]
public PartialViewResult MyFormGet()
{
    var viewModel = new MyFormViewModel();
    ViewData.TemplateInfo.HtmlFieldPrefix = Guid.NewGuid().ToString().Replace("-", "_");
    return PartialView("MyForm", viewModel);
}

Показать модель

public class MyFormViewModel
{
    public string TextInput1 { get; set; }
}

MyForm.cshtml - просмотр Razor

@model Mvc5App.Controllers.MyFormViewModel

@using (Html.BeginForm("MyFormPost", "Form", FormMethod.Post))
{
    <br />
    @Html.TextBoxFor(m => m.TextInput1)
}

Когда я укажу свой браузер на /Form/MultiForms, я получаю ожидаемый результат:

<input type="text" value="" name="e166fa0d_46fe_40d4_a970_73c52a35f224.TextInput1" id="e166fa0d_46fe_40d4_a970_73c52a35f224_TextInput1">

Затем я обновляю страницу, и результат становится следующим:

<input type="text" value="" name="48edc339_69ad_4b9b_9583_198038beab45.TextInput1">

Откуда появился атрибут id? Это ошибка в ASPNET MVC5 или я сделал что-то не так с этой настройкой?

Ответ 1

Благодаря @demo Я думаю, что понял, когда идентификатор не отображается...

Если идентификатор начинается с цифры (или подчеркивания), она не будет отображаться. Таким образом, этот GUID будет отображать:

f3b1a447_3786_4472_9dfe_14c3ae8aae24

Но этого не будет:

1c26ce3d_5c71_408a_aae2_7be414f1d383

Решение для вышеприведенного кажется префиксом примерно таким образом:

FOO_1c26ce3d_5c71_408a_aae2_7be414f1d383

И проблемы уходят.