我正在添加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"})