删除taghelper生成的输入标记中的前缀

时间:2017-12-09 16:16:35

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

包含此行的部分视图

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

我得到以下输出

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

这意味着我需要考虑到这一点&#34; Form&#34;使用像这样的Bind属性

在我的动作定义中添加前缀
public async Task<IActionResult> SendContactForm([Bind(Prefix = "Form")] ContactFormViewModel model)

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

我查找了内联标记帮助器属性以及要添加到我的模型但无法找到任何内容的属性...

有没有删除这个前缀的技巧或者我坚持这个(丑陋的)Bind

1 个答案:

答案 0 :(得分:0)

在这种情况下,一种选择是使用包含您的表单的 <partial> 并使用 model 属性传入您的模型。

在您看来,这应该是这样的。

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

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

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