gpt4 book ai didi

asp.net-mvc - 将 DataTable 从 Controller 传递到 PartialView

转载 作者:行者123 更新时间:2023-12-03 04:58:29 25 4
gpt4 key购买 nike

我正在寻找一种使用 Controller 操作将 DataTable 传递到 PartialView 的方法。或者,如果您知道更好的方法,我愿意接受建议。

Controller :

public DataTable GetDailyOutput()
{
Graph g = repository.Graphs.Where(p => p.GraphID == 2).FirstOrDefault();
DataTable dt = repository.GetGraphData(g.StoredProc);
return dt;
}

查看:

<div id="dvCategoryResults">
@{Html.Partial("_GetDailyOutput", Html.Action("GetDailyOutput", "Graph"));}
</div>

部分 View :

@model System.Data.DataTable
@using System.Data
<table>
<thead>
<tr>
@foreach (DataColumn col in Model.Columns)
{
<th>
@col.ColumnName
</th>
}
</tr>
</thead>
<tbody>
@foreach (DataRow row in Model.Rows)
{
<tr>
@foreach (DataColumn col in Model.Columns)
{
<td>
@row[col.ColumnName]
</td>
}
</tr>
}
</tbody>
</table>

我的下一步是使用 Ajax 调用更新表格并刷新 PartialView

最佳答案

您可能需要使用 AJAX 来实现此目的。您可以将下面的代码放入事件处理程序中,例如按钮单击的处理程序。

使用 JQuery $.post() 的 AJAX 示例:

$.post('@Url.Content("~/Graph/_GetDailyOutput")', function( data ) {
$( "#dvCategoryResults" ).html( data );
});

Controller 操作:

public PartialViewResult _GetDailyOutput()
{
Graph g = repository.Graphs.Where(p => p.GraphID == 2).FirstOrDefault();
DataTable dt = repository.GetGraphData(g.StoredProc);
return PartialView(dt);
}

如果您愿意,您可以在不使用 JavaScript 的情况下最初渲染部分 View ,方法是

<div id="dvCategoryResults">
@Html.Action("_GetDailyOutput", "Graph")
</div>

关于asp.net-mvc - 将 DataTable 从 Controller 传递到 PartialView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28899803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com