当前位置: 首页 > 知识库问答 >
问题:

将视袋从动作控制器传递到部分视图

惠野
2023-03-14

我有一个mvc视图和一个局部视图。控制器中有一个ActionResult方法,它将返回一个PartialView。所以,我需要将ViewBag数据从ActionResult方法传递到部分视图。

这是我的控制器

public class PropertyController : BaseController
{
    public ActionResult Index()
    {
        return View();
    }
    public ActionResult Step1()
    {
        ViewBag.Hello = "Hello";
        return PartialView();
    }
}

在Index.cshtml视图中

@Html.Partial("Step1")

Step1.cshtml局部视图

@ViewBag.Hello

但是这是行不通的。那么,从viewpack获取数据的正确方法是什么?我想我遵循了错误的方法。请指导我。

共有3个答案

臧曜瑞
2023-03-14

老问题,但如果有人在这里找到这个问题的解决方案。

您可以使用viewdatadictionary将viewbag值传递给partial。

在您看来:

@Html.Partial("_Partial", "", new ViewDataDictionary { { "permalink", ViewBag.Permalink } })

在部分视图中,请像这样使用它:

ViewData["permalink"]
宋博易
2023-03-14

如果不必使用 ViewBag,则可以使用 TempData。TempData 是在整个执行链中共享的。

public class PropertyController : BaseController
{
    public ActionResult Index()
    {
        return View();
    }
    public ActionResult Step1()
    {
        TempData["Hello"] = "Hello";
        return PartialView();
    }
}

在Index.cshtml视图中

@Html.Partial("Step1")

Step1.cshtml局部视图

@TempData["Hello"]
申屠鹏
2023-03-14

您可以如下所述使用它:

在您的视图中:

@Html.Partial("[ViewName]", (string)ViewBag.Message)

以及你的部分观点:

@model String

<b>@Model</b>

如上所示,ViewBag.Message 将被传递到部分视图。在部分视图中,您可以将其用作@Model。

注意:这里是ViewBag的类型。消息是字符串。您可以传递任何类型。

 类似资料:
  • 在我们讨论数据库和数据模型之前,让我们先讨论一下如何将数据从控制器传递给视图。控制器类将响应请求来的URL。控制器类是给您写代码来处理传入请求的地方,并从数据库中检索数据,并最终决定什么类型的返回结果会发送回浏览器。视图模板可以被控制器用来产生格式化过的HTML从而返回给浏览器。 控制器负责给任何数据或者对象提供一个必需的视图模板,用这个视图模板来Render返回给浏览器的HTML。最佳做法是:一

  • 问题内容: 我是laravel的新手,我一直试图将表’student’的所有记录存储到一个变量,然后将该变量传递给视图,以便可以显示它们。 我有一个控制器-ProfileController,里面有一个函数: 我认为我有此代码 我收到此错误:未定义的变量:学生(View:regprofile.blade.php) 问题答案: 你能试试看吗 同时,您可以设置多个类似这样的变量,

  • 问题内容: 我想要的是将txtComments的值从View(使用jquery / ajax)传递给Controller。 问题是ajax / jquery不接受脚本标签作为字符串。意思是,当我在txtComments中输入任何脚本/ html标记时,ajax会进入错误功能,而无法进入控制器。 这是jQuery: 这是控制器: 我也试过了逃脱(注释),但是还是一样。 问题答案: 尝试使用该功能的选

  • 问题内容: 我会将两个php变量从codeigniter控制器传递给位于我的视图顶部的javascript函数。有可能这样做吗? 问题答案: 是的,只要回显javascript:

  • 问题内容: 我正在使用Swift,在tableview的didSelectRowAtIndexPath方法中出现错误。我想将值传递给另一个视图控制器,即“ secondViewController”。这里,EmployeesId是一个数组。相关代码如下: 但是我收到此错误:致命错误:展开一个Optional值时意外发现nil。 任何帮助将不胜感激。 问题答案: 这是一个有两个假设的一般解决方案。首