ASP.NET MVC编辑视图中Model传递数据到Partial View为空错误求解
问题原因
你的代码错误出在循环渲染分部视图时,传递的模型参数和分部视图预期的模型不匹配:
- 你遍历
Model.GeneralItmsList得到单个条目item,但调用Html.RenderAction时传递的是完整的列表Model.GeneralItmsList.ToList() - 你的分部视图声明的模型是单个
Asp_PASMVC.Models.GeneralItms对象,无法匹配传入的列表,自然无法渲染出数据,所以只会生成对应条数的空行。
修复方案
方案1:直接渲染分部视图(无需调用Action,适合无额外逻辑的场景)
直接用Html.RenderPartial传递当前遍历到的单个条目即可,修改主视图代码:
<ul id="RequItms" style="list-style-type: none"> @if (Model != null && Model.GeneralItmsList != null) { foreach (var item in Model.GeneralItmsList) { Html.RenderPartial("GeneralItmsPartialView", item); } } </ul>
方案2:保留RenderAction调用的修改方法
如果你的分部视图需要在Action中做额外的逻辑处理,需要做两处修改:
- 修改主视图中RenderAction的调用参数,传入当前单个条目:
Html.RenderAction("GeneralItmsPartialView", "AppRequests", new { item = item });
- 修改
AppRequests控制器中的GeneralItmsPartialView方法,接收参数并传递给视图:
public ActionResult GeneralItmsPartialView(GeneralItms item) { // 此处可添加你需要的额外处理逻辑 return PartialView(item); }
修改后重新运行即可正确填充每条记录的数据。
内容的提问来源于stack exchange,提问作者user1983377
相关产品推荐
相关产品推荐

