ASPNET MVC 5 Html helper Action方法视图结果缺少输入id(有时.)可能存在错误

本文关键字:有时 id 输入 错误 存在 Html MVC helper Action 结果 视图 | 更新日期: 2023-09-27 17:59:13

为了重新创建我遇到的问题,我设置了两个简单的控制器操作、两个视图和一个视图模型:

多表单操作(在表单控制器类中)

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

MultiForms.cshtml-Razor视图

@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中的一个错误,还是我对此设置做了一些错误?

ASPNET MVC 5 Html helper Action方法视图结果缺少输入id(有时.)可能存在错误

感谢@demo,我想我知道id何时不显示了。。。

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

f3b1a447_3786_4472_9dfe_14c3ae8aae24

但这不会:

1c26ce3d_5c71_408a_aae2_7be414f1d383

上面的解决方案似乎是在前面加上这样的东西:

FOO_1c26ce3d_5c71_408a_aae2_7be414f1d383

然后问题就消失了。