加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – Asp.Net MVC 5如何将ViewBag发送到部分视图

发布时间:2020-12-16 07:10:53 所属栏目:asp.Net 来源:网络整理
导读:我有一个_LoginPartial View,想要通过ViewBag向它发送数据,但是我发送数据的Controller没有View. public PartialViewResult Index() { ViewBag.sth = // some data return PartialView("~/Views/Shared/_LoginPartial.cshtml"); } 这段代码对我不起作用. 解
我有一个_LoginPartial View,想要通过ViewBag向它发送数据,但是我发送数据的Controller没有View.

public PartialViewResult Index()
    {
        ViewBag.sth = // some data
        return PartialView("~/Views/Shared/_LoginPartial.cshtml");
    }

这段代码对我不起作用.

解决方法

看起来你期望在执行以下操作时调用此Index操作:@ Html.Partial(‘_ LoginPartial’).这永远不会发生. Partial只使用当前视图的上下文通过Razor运行局部视图,并吐出生成的HTML.

如果您需要部分的其他信息,可以指定自定义ViewDataDictionary:

@Html.Partial("_LoginPartial",new ViewDataDictionary { Foo = "Bar" });

然后您可以在部分通道内访问:

ViewData["Foo"]

您还可以使用子操作,如果使用不需要主视图上下文的局部视图,通常更可取. _LoginPartial似乎是一个很好的候选人,虽然我不确定你是如何使用它的.但具有讽刺意味的是,带有单独身份验证的默认MVC项目附带的_LoginPartial视图使用子操作.

基本上,您拥有的代码已经可以使用,您只需要通过使用Html.Action而不是Html.Partial来更改引用它的方式:

@Html.Action("Index")

请注意,您在此处调用操作,现在调用视图.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读