javascript 将使用$.get()呈现的部分视图中的任何数据传递给ContentPage

lg40wkob  于 2023-04-19  发布在  Java
关注(0)|答案(2)|浏览(107)

我正在努力使我的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">

我该怎么做?

cx6n0qe3

cx6n0qe31#

我在我的partialView上写了这段代码,它在ContentPage的body标记处添加了一个类

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

t2a7ltrp2#

如果你有一个脚本管理器($.get),它调用你的服务器来获取视图和部分视图,没有问题。
当你请求一个URL时,通常MVC会调用一个Controller和Action。在这个Action中,你可以返回内容,视图,部分视图,文件等等。
您可以创建一个类模型的新示例并传递给您的局部视图。

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">

我一直都在用这个。

相关问题