从我的观点来看:
$('#roles').button().click(function () {
$.get('@Url.Action("load_manageRoles","Staff",new {muid = Model.UserID,Column = sort.Column,Direction = sort.Direction,page =(int?)ViewBag.page,upid=upid})',
function (data) {
$("#dialog-role-management").html("").html(data);
$("#dialog-role-management").dialog({
resizable: false,
height: 500,
width: 400,
modal: true,
buttons: {
Cancel: function () {
$("#dialog-role-management").html("");
$(this).dialog("close");
}
}
});
$('#dialog-role-management').show();
});
});
使用萤火虫我看到所有参数都填充了有效值。
动作看起来像:
[HttpGet]
public ActionResult load_manageRoles(Guid muid,GridSortOptions sort, int? page,String upid)
{
....
}
正在发生的奇怪的事情是 page 和 upid 没有被填充并且结果为 null,即使它看起来像我之前所说的那样从 firebug 传递了正确的值。但是,muid 和 sort 正在正确传递。
非常困惑,任何帮助将不胜感激。
谢谢克里斯
更新 1:
感谢您的回复仔细检查,但它是正确的。控制器的细节无关紧要,我一开始一定没有说清楚。问题在于传递给服务器的数据没有被解析。以下是firebug捕获到服务器的参数:
Column UserName
方向上升
muid f4ab6784-fbd3-4386-80d7-6b186eb04c52
第 1 页
upid dc8f4336-0903-4875-848e-a1b30098a457
为了测试我是否触发了 muid 和 upid 的值,muid 仍然被接受并且 upid 仍然为空。此外,如果我将 upid 从字符串更改为 guid,它仍然为空。
更新 2
我将 jquery 中参数的顺序从 muid=xx、upid=xx 等...翻转为 upid=xxx、muid=xxx 等...结果是 muid 现在为 null 并且 upid 具有值。我还对新订单重复了更新 1 测试,结果相同。由于某种原因,它似乎只接受第一个参数。
更新 3
取得进展,该动作似乎只接受第一个参数。我通过旋转所有参数和组合来测试这一点。关于为什么会发生这种情况的任何建议?
感谢您的回复!