ASP.NET Core控制器返回PartialView时如何实现partial标签的for属性效果
实现方法
<partial>标签的for属性本质是自动给分部视图配置了字段前缀,你在控制器返回分部视图时手动设置这个前缀就能实现完全一样的效果:
- 先让你的控制器接口接收索引参数,手动给
ViewData.TemplateInfo.HtmlFieldPrefix赋值对应前缀:
public IActionResult GetFormPartial(int index) { // 初始化你的分部视图需要的模型实例,按需调整 var model = new Object(); // 核心配置:设置表单字段的前缀 ViewData.TemplateInfo.HtmlFieldPrefix = $"ListOfObject[{index}]"; return PartialView("_Form.cshtml", model); }
- 前端发起AJAX请求时,把当前需要的索引值作为参数传给接口即可。
配置完成后,分部视图里的asp-for标签助手生成的name、id属性就会自动带上你设置的前缀,和直接在视图中用for属性渲染的结果完全一致,提交表单时可以正常绑定到ListOfObject的对应索引位置。
注意你示例代码里的
_Form.cshmtl是笔误,正确后缀是.cshtml,写错会导致找不到分部视图。
内容的提问来源于stack exchange,提问作者Septovan
相关产品推荐
相关产品推荐

