我正在使用ASP.NET MVC Core 2.1,并且我有一组硬编码的HTML选项,我希望通过将它们置于局部视图中来重复使用。页面将根据需要呈现,但未设置所选选项。
这有效:
<select asp-for="Person.Prefix" class="form-control">
<option value="Miss">Miss</option>
<option value="Mr.">Mr.</option>
<option value="Mrs.">Mrs.</option>
<option value="Ms.">Ms.</option>
</select>
这不是:
<select asp-for="Person.Prefix" class="form-control">
<partial name="People/_PrefixOptions" />
</select>
_PrefixOptions的内容是
<option value="Miss">Miss</option>
<option value="Mr.">Mr.</option>
<option value="Mrs.">Mrs.</option>
<option value="Ms.">Ms.</option>
我无法将整个select元素拉入partial,因为它绑定到其他页面上的不同属性。
答案 0 :(得分:2)
使用<partial>
标记帮助器时,您可以通过两种方式传递数据:
model
属性提供模型实例。示例,当您希望将Model.Person
模型传递给以下用户时:
<select asp-for="Person.Prefix" class="form-control">
<partial name="People/_PrefixOptions" model="Model.Person" />
</select>
for
属性,您可以在局部视图内传递当前模型的属性。例如,当您希望将模型属性Prefix
的{{1}}传递给:
Person
请注意,使用<select asp-for="Person.Prefix" class="form-control">
<partial name="People/_PrefixOptions" for="Person.Prefix" />
</select>
属性时缺少Model.
。
有关for
标记帮助器的更多信息可以是found here。
使用此功能标记选定的<partial>
元素时,它仍会使您在分部中进行一些工作。就我个人而言,我更喜欢在<option>
容器中对选项进行硬编码,并对选择列表described here使用SelectListItem
方法。