ASPNET MVC 5 Html帮助器Action方法查看结果输入id丢失(有时..)可能的Bug?

要重新创建我正在设置的问题,我已经设置了两个简单的控制器操作,两个视图和一个视图模型:

MultiForms Action(在窗体控制器类中)

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

MultiForms.cshtml – Razor View

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

请注意,在action方法中,我调用了返回表单局部视图的controller方法。

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 View

 @model Mvc5App.Controllers.MyFormViewModel @using (Html.BeginForm("MyFormPost", "Form", FormMethod.Post)) { 
@Html.TextBoxFor(m => m.TextInput1) }

当我将浏览器指向/Form/MultiForms我得到了我期望的输出:

  

然后我刷新页面,输出变为:

  

id属性在哪里? 这是ASPNET MVC5中的错误还是我在这个设置上做错了什么?

感谢@ demo我想我在id没出现的时候想通了……

如果id以数字(或下划线)开头,则不会呈现。 所以这个GUID将呈现:

f3b1a447_3786_4472_9dfe_14c3ae8aae24

但是这个不会:

1c26ce3d_5c71_408a_aae2_7be414f1d383

上面的解决方案似乎是这样的前缀:

FOO_1c26ce3d_5c71_408a_aae2_7be414f1d383

问题就消失了。