asp.net mvc 将使用 $.get() 呈现的局部视图中的任何数据传递给 ContentPage

asp.net mvc passing any data from a partial view that is rendered with $.get() to ContentPage

我正在尝试使我的 Web 应用程序像桌面应用程序一样。

我也使用任何_LayoutPage@RenderBody()

我有一个 ContentPage 作为 MasterPage 和一个名为 main

的标签

我正在使用 ajax get 方法来呈现我的视图或部分视图,如下所示:

  $.get(url).done(function (result) {
            $("main").html(result);
        });

我成功地用 javascript 函数注入了我的 scriptcss 文件。

现在我想在不使用 javascript 函数的情况下传递一些特定数据。

我猜可以通过使用 ViewBag。

我想从我的 partialView:

传递数据
ViewBag.BodyClass = "signup-page";

给我的 MainPage 这样的:

<body class="@ViewBag.BodyClass">

我该怎么做?

小提示:请无视我是新手,口碑不佳

如果您有一个脚本管理器($.get)调用您的服务器来获取视图和部分视图,没问题。

当您请求 URL 时,通常 MVC 会调用 Controller 和 Action。在该操作中,您可以 return 内容、视图、部分视图、文件等等...

您可以创建一个 class 模型的新实例并传递给您的局部视图。

public ActionResult Index(string parameter1, string parameter2)
{
     var model = new Models.ModelTest();
     model.BodyClass = "some class";

     return PartialView("_Page", model);
}

你会这样调用:

$.get("http://localhost/app/getviews?id=3422&parameter1=test&parameter2=foo")

在您的视图或部分视图中:

@model YourApp.Models.ModelTest

<body class="@Model.BodyClass">

我一直用它。

我在 partialView 上写了那个代码。它在 ContentPage 的正文标签

处添加了一个 class

$("body").addClass("signup-page");