我有一個帶有導航額外按鈕的JqGrid。在onClickButton事件中,我想將行數據發佈到另一個視圖,而不僅僅是可以通過操作鏈接完成的一個值。我需要能夠傳遞更多的變量和它們的值來執行參數化創建操作,其中包含預填充值[隱藏輸入]並顯示在視圖中。在這種情況下,我只發送2個.JSON更合適。但讓我們繼續。JqGrid - 將數據(重定向)發佈到控制器操作結果爲404
.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發送 - 就像傳遞給控制器的一個變量一樣。我認爲這跟
location = "url";
聲明數據可能丟失或改變的地方。我需要以某種方式找到一種方法來顯示傳遞後的值,從而使操作的CreateWithParams視圖呈現(無論GET還是POST)。對於創建動作,我不需要傳遞模型數據,只需要先前的值但稱爲視圖即可使用模型。每個發佈後操作示例僅返回回調,但不顯示使用發送數據的控制器操作視圖。或者這是完全不好的方法,這是不可能的?或者調用CreateWithParams操作的結果重發數據的另一個操作?如果這樣可以讓我指向正確的方向?
我解決了這個問題其他的方式,我創建隱藏的形式隱藏提交按鈕,當用戶點擊導航按鈕觸發它,所以在行動CreateWithParams我剛剛更換參數到FormCollection。像魅力一樣工作。 – JadaVonRuth