javascript - 将使用 $.get() 呈现的部分 View 中的任何数据传递到 ContentPage

标签 javascript asp.net-mvc parameter-passing asp.net-mvc-partialview viewbag

我正在尝试使我的网络应用程序像桌面应用程序一样。我也使用任何_LayoutPage@RenderBody()

我有一个 ContentPage 作为 MasterPage 和一个名为 main 的标签。我正在使用 ajax get 方法来渲染我的 View 或部分 View ,如下所示:

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

我设法使用 JavaScript 函数注入(inject)我的 scriptcss 文件。

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

我猜可以通过使用 ViewBag 来实现。

我想从我的 partialView 传递该数据:

 ViewBag.BodyClass = "signup-page";

到我的MainPage,如下所示:

<body class="@ViewBag.BodyClass">

我怎样才能做到这一点?

最佳答案

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

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

您可以创建类模型的新实例并传递到您的分部 View 。

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

在您的 View 或部分 View 中:

@model YourApp.Models.ModelTest

<body class="@Model.BodyClass">

我一直用这个。

关于javascript - 将使用 $.get() 呈现的部分 View 中的任何数据传递到 ContentPage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40319214/

相关文章:

javascript - 动画在页面向下滚动时开始

javascript - 停止在新选项卡中打开自定义协议(protocol)

.net - ASP MVC <% : ViewData ["Key"] %> and <%=ViewData ["Key"] %>

asp.net - MVCReportViewer 帮助 - 无法将参数传递给报表 - ViewBag 问题

java - 在 Java 中更改传递的对象的错误编程习惯

javascript - 如何使用一个 JWT token 签署第二个 JWT token ?

javascript - electron 的 remote.getGlobal() 在 window.location.replace() 之后返回 "undefined"

c# - Razor:使用其他应用程序的布局文件

c++ - 将数组传递给函数

java - Java 是 "pass-by-reference"还是 "pass-by-value"?