MVC C# nameof() 部分添加 @Html.隐藏未按预期工作



我正在添加nameof((以添加@Html.Hidden((中的属性名称。但它将部分名称添加为带点的前缀。这是我的示例代码

@Html.Hidden(nameof(InputModel.ErrorUrl), Model.AddToCartInputModel.ErrorUrl) 

这给出了这样的输出(请参阅名称属性(

<input id="AddToCartButton_ErrorUrl" name="AddToCartButton.ErrorUrl" type="hidden" value="">

我对输出的期望应该是这样的

<input id="AddToCartButton_ErrorUrl" name="ErrorUrl" type="hidden" value="">

这一切都是因为@Html.DisplayFor()当我尝试使用@Html.Partial(), 它工作正常。不知道为什么html助手不能与@Html.DisplayFor()正常工作。

感谢您的建议。

如果使用此重载,Id 和名称将是一致的,为什么你想要正确的 Id 和不正确的名称?如果这真的是你想要做的,只需覆盖 HtmlAttributes:

@Html.Hidden(nameof(InputModel.ErrorUrl), Model.AddToCartInputModel.ErrorUrl, new {name = "ErrorUrl", id = "AddToCartButton_ErrorUrl"}) 

最新更新