在ASP.NET Core 2.2中,使用HiddenInput属性时可能会遇到问题,它可能不起作用。以下是解决此问题的方法。
首先,确保在 nuget 中安装了 Microsoft.AspNetCore.Mvc.ViewFeatures
包。可以通过以下命令在包管理器控制台中安装该包:
Install-Package Microsoft.AspNetCore.Mvc.ViewFeatures -Version 2.2.0
然后,确保在模型属性上正确应用了 HiddenInput
属性。例如,假设我们有一个名为 MyModel
的模型类,其中有一个 Id
属性需要隐藏:
using System.ComponentModel.DataAnnotations;
using Microsoft.AspNetCore.Mvc;
public class MyModel
{
[HiddenInput]
public int Id { get; set; }
// 其他属性...
}
接下来,确保在视图中使用 @Html.HiddenFor
或 @Html.Hidden
辅助函数来生成隐藏字段。例如,假设我们有一个名为 Index.cshtml
的视图文件:
@model MyModel
@using (Html.BeginForm())
{
@Html.HiddenFor(m => m.Id)
}
最后,确保在控制器的 POST 动作中接收和处理隐藏字段的值。例如,假设我们有一个名为 HomeController
的控制器类:
using Microsoft.AspNetCore.Mvc;
public class HomeController : Controller
{
[HttpPost]
public IActionResult Index(MyModel model)
{
// 处理模型数据...
return View(model);
}
}
现在,当提交表单时,隐藏字段的值应该正常传递给控制器动作。
这是解决“ASP.NET Core 2.2脚手架上的HiddenInput不起作用”的示例代码。确保按照上述步骤进行操作,并根据自己的需求进行适当的调整。