【问题标题】:Remove prefix in taghelper-generated input tag删除 taghelper 生成的输入标签中的前缀
【发布时间】:2021-01-27 20:31:57
【问题描述】:

带有包含这一行的局部视图

<input asp-for="Form.FirstName" asp- class="form-control" />

我得到以下输出

<input id="Form_FirstName" name="Form.FirstName" <!-- more stuff --> >

这意味着我需要使用像这样的 Bind 属性在我的操作定义中考虑那个“表单”前缀

public async Task<IActionResult> SendContactForm([Bind(Prefix = "Form")] ContactFormViewModel model)

我不太喜欢使用 Bind 属性,我认为它非常冗长,而且基于文本,难以维护。我更希望能够告诉 netcore2 input 标签助手在生成 HTML 时简单地省略前缀,但我找不到任何内置解决方案,但我可能错过了...

我寻找内联标签助手属性以及要添加到我的模型的属性,但找不到任何东西......

有什么技巧可以去掉这个前缀还是我被这个(丑陋的)Bind 卡住了?

【问题讨论】:

  • 这也意味着防伪成为前缀(至少在 2.1 中),这会导致更多问题。

标签: c# asp.net-core asp.net-core-tag-helpers


【解决方案1】:

在这种情况下,一种选择是使用包含您的表单的&lt;partial&gt;,并使用model 属性来传递您的模型。

在您看来,这将是这样的。

<partial name="PartialName" model="@Model.Form">

在您的部分中,您将不再需要 asp-for 表达式中的前缀。

<input asp-for="FirstName" class="form-control" />

【讨论】:

    猜你喜欢
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多