C# 使用Javascript在MVC中呈现局部视图

C# 使用Javascript在MVC中呈现局部视图,c#,javascript,asp.net,asp.net-mvc,asp.net-mvc-4,C#,Javascript,Asp.net,Asp.net Mvc,Asp.net Mvc 4,我有一个asp.NETMVC网站,它由一个顶栏和一个主区域组成 通过js函数,我希望能够从我的控制器中检索新数据,并在我的网站的主区域中显示这些数据,但无需重新渲染顶栏区域 我该怎么做 以下是我得到的: 我将顶栏和所有相关脚本放在\u layout.cshtml中,与主视图相关的脚本转到Display.cshtml中,我要显示的数据本身放在Partial\u ChartView.cshtml中 应该显示我的图表数据的部分视图加载在display.cshtml中,如下所示: @model Mobi

我有一个asp.NETMVC网站,它由一个顶栏和一个主区域组成

通过js函数,我希望能够从我的控制器中检索新数据,并在我的网站的主区域中显示这些数据,但无需重新渲染顶栏区域

我该怎么做

以下是我得到的:

我将顶栏和所有相关脚本放在
\u layout.cshtml
中,与主视图相关的脚本转到
Display.cshtml
中,我要显示的数据本身放在
Partial\u ChartView.cshtml

应该显示我的图表数据的部分视图加载在
display.cshtml
中,如下所示:

@model MobileReports.Models.ReportViewModel
@{
    ViewBag.Title = "Display";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@{Html.RenderPartial("Partial_ChartView");}
@model MobileReports.Models.ReportViewModel
<div id="chartContainer">@Model.Chart</div>
部分视图
partial:ChartView.cshtml
如下所示:

@model MobileReports.Models.ReportViewModel
@{
    ViewBag.Title = "Display";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@{Html.RenderPartial("Partial_ChartView");}
@model MobileReports.Models.ReportViewModel
<div id="chartContainer">@Model.Chart</div>
当我在../Report/Display打开页面时,该页面似乎呈现正确

现在我想添加一个脚本,该脚本使用特定值调用Display(id)。然后我只想重新渲染主区域(在div#chartContainer内部),以显示现在应该在模型中的新数据。
如何执行此操作?

创建一个新方法,该方法返回仅包含所需数据的局部视图

public ActionResult Chart(GUID id)
{
  .....
  return PartialView(someModel);
}
然后使用jquery
.load
替换div的内容

$('#chartContainer').load('@Url.Action("Chart", "Report")', { id: YourGUIDValue });

您正在使用JQuery库吗?请看一看是的,我已经在应用程序的不同部分使用了JQuery。我已经读过jquery.load(),但尝试使用它时没有成功。你能举个例子吗?jquey.load的问题是它总是包含整个站点,而不仅仅是我想显示的部分
$('#chartContainer').load('@Url.Action(“display”,“Report”),{id:YourGUIDValue})
创建一个新方法(比如
公共操作结果图(GUID id){..
),该方法返回一个
局部视图
,其中只包含要替换的数据。