我有这个观点(工作正常):
<form asp-action="Edit" asp-orientation="Vertical" cit-ajax-modal="true">
<modal id="language-modal" title="Hello World!">
<modal-body>
<validation-summary/>
<form-group-select asp-for="CultureName" asp-items="@GlobalizationViewService.GetCultureSelectList()"/>
<form-group-text asp-for="DisplayName"/>
<form-group-checkbox asp-for="IsEnabled"/>
<form-group-numeric asp-for="DefaultChance" />
</modal-body>
<modal-footer/>
</modal>
</form>
现在我想将form-group-*
标记提取到部分视图中:
<validation-summary/>
<form-group-select asp-for="CultureName" asp-items="@GlobalizationViewService.GetCultureSelectList()"/>
<form-group-text asp-for="DisplayName"/>
<form-group-checkbox asp-for="IsEnabled"/>
<form-group-numeric asp-for="DefaultChance" />
那些TagHelpers使用TagHelperContext
元素创建的FormTagHelper
。
所以我的新观点是:
<form asp-action="Edit" asp-orientation="Vertical" cit-ajax-modal="true">
<modal id="language-modal" title="Hello World!">
<modal-body>
@Html.Partial("EditElementsPartial")
</modal-body>
<modal-footer/>
</modal>
</form>
但是,TagHelperContext
中的Partial
不包含从FormTagHelper
创建的任何项目。
我的基本动机是创建一个公共视图,由Update
或Create
视图使用。 form-group-*
应该从asp-orientation
代码中获取有关form
的信息。
问题Html.Partial
是错误的吗?有更好的方法吗?是否可以将TagHelperContext
传递给偏见?
答案 0 :(得分:1)
实现目标的唯一方法是使用ViewContext.ViewData
进行标记帮助程序通信,如下所述:https://docs.aws.amazon.com/aws-mobile/latest/developerguide/getting-started.html