更新- 我根据新信息更改了问题:
我们有一个在网格中返回搜索结果的小应用程序。只有一个控制器动作,因为这就是应用程序所做的一切。但是,我们希望根据用户权限隐藏一些数据。例如,根据用户权限,我在 HTML 中隐藏 StockSource 列,如下所示:
<th>Name</th>
@if (Model.UserCanSeeThis)
{
<th>StockSource</th>
}
<th>SomeOtherColumn</th>
然后在这个 js 代码中我们使用DataTables来构建一个显示网格:
$('#grdSearch').dataTable( {
"bProcessing": true,
"sAjaxSource": uri,
"fnServerData": function(sSource, aoData, fnCallback, oSettings) {
oSettings.jqXHR = $.ajax(
{
type: "POST",
url: sSource,
data: JSON.stringify(BuildSearchParams()),
contentType: "application/json",
dataType: 'json',
success: function (data) {
if (typeof data["error"] == "undefined") {
fnCallback(data);
} else {
alert(data["error"]);
}
}
});
},
"aoColumns": [
{ "mData": "Name" },
{ "mData": "StockSource" },
{ "mData": "SomeOtherColumn" }
]});
问题是我不能将“StockSource”设置为不可见,因为如果用户没有权限,就没有 StockSource 列可以设置为空。任何想法如何控制这个?