是否可以在局部视图中使用相同的TagHelperContext?

时间:2017-12-27 07:36:40

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

我有这个观点(工作正常):

<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创建的任何项目。

我的基本动机是创建一个公共视图,由UpdateCreate视图使用。 form-group-*应该从asp-orientation代码中获取有关form的信息。

问题Html.Partial是错误的吗?有更好的方法吗?是否可以将TagHelperContext传递给偏见?

1 个答案:

答案 0 :(得分:1)

实现目标的唯一方法是使用ViewContext.ViewData进行标记帮助程序通信,如下所述:https://docs.aws.amazon.com/aws-mobile/latest/developerguide/getting-started.html

相关问题