You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在返回Partial视图时传递ViewDataDictionary

解决方法

你可以通过两种方式将ViewData传递给分部视图:

方法1:使用带ViewData参数的Partial重载

直接调用Partial方法的三参数重载,把当前的ViewData作为第三个参数传入即可:

public IActionResult OnGetAddObjective(string newObjective)
{
    ViewData["MyTestData"] = "hi";
    return Partial("_ObjectiveRow", new ObjectiveViewModel { ObjectiveText = newObjective }, ViewData);
}

方法2:手动创建PartialViewResult

如果需要更灵活的配置,也可以手动实例化PartialViewResult,并为它的ViewData属性赋值:

public IActionResult OnGetAddObjective(string newObjective)
{
    ViewData["MyTestData"] = "hi";
    return new PartialViewResult
    {
        ViewName = "_ObjectiveRow",
        Model = new ObjectiveViewModel { ObjectiveText = newObjective },
        ViewData = ViewData
    };
}

补充说明

主页面直接调用分部视图时,Razor会自动将主页面的ViewData传递给分部,这是因为渲染上下文是连续的。但通过后台Action返回分部视图时,属于独立的响应输出,默认不会自动携带当前的ViewData,所以必须显式传递。

内容的提问来源于stack exchange,提问作者user568551

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 04:24:51