我有一个带有导航额外按钮的 JqGrid。在 onClickButton 事件中,我想将行数据发布到另一个视图,而不仅仅是一个可以通过操作链接完成的值。我需要能够传递更多变量及其值,以使用预填充值 [用于隐藏输入] 执行参数化创建操作并显示在视图中。在这种情况下,我只发送 2 个。JSON 会更合适。但让我们继续。
.jqGrid('navButtonAdd', '#rolesPager',
{
caption: "",position: 'first',buttonicon: "ui-icon-plus",
title: $.jgrid.nav.addtitle,
onClickButton: function () {
$.post("/Administration/Roles/CreateWithParams", {
foreignColumn: 'WEB_USER_id', foreignValue: '1' }, function (data) {
location = "/Administration/Roles/CreateWithParams";
}).fail(function (error)
{
alert(error);
});
}});
然后我有一个控制器动作:
//
// GET: /Administration/Roles/Create
[HttpGet]
[HttpPost]
public ActionResult CreateWithParams(string foreignColumn, int foreignValue)
{
ViewBag.WEB_ROLE_id = new SelectList(db.WEB_ROLE, "WEB_ROLE_id", "name");
ViewBag.WEB_USER_id = foreignValue;
return View();
}
数据已发送,但在 404 中呈现其视图失败 - 找不到资源。在我的 post 方法中,我只有 2 个参数,但可以作为 JSON 发送 - 作为传递给 controller 的一个变量。我认为这与
location = "url";
数据可能丢失或更改某些内容的语句。我需要以某种方式找到一种方法,如何通过显示传递的帖子值来呈现操作 CreateWithParams 的视图(无论是 GET 还是 POST)。对于创建操作,我不需要传递模型数据,只需传递以前的值,但称为视图将使用模型。每个发布操作示例仅返回回调,但不使用发送的数据显示控制器操作视图。或者这是完全错误的方法,这是不可能的?或者通过 CreateWithParams 操作重新发送数据来调用另一个操作?如果是这样,有人能指出我正确的方向吗?