0

ナビゲーションの追加ボタンを備えた JqGrid があります。onClickButton イベントでは、アクション リンクを介して実行できる 1 つの値だけでなく、行データを別のビューに投稿したいと考えています。[非表示の入力用に] 事前に入力された値を使用してパラメトリック作成アクションを実行し、ビューに表示するには、より多くの変数をその値とともに渡すことができる必要があります。この場合、私は 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つのパラメーターしかありませんが、コントローラーに渡される変数が1つだけであるため、JSONとして送信できます。これは何か関係があると思います

location = "url";

データがおそらく失われるか、何かが変更されるステートメント。渡された投稿値を表示して、アクション CreateWithParams のビューをレンダリングする方法を何とか見つける必要があります (GET か POST かは関係ありません)。作成アクションの場合、モデル データを渡す必要はありません。以前の値だけでなく、ビューと呼ばれるモデルが使用されます。すべてのポスト アクションの例は、コールバックを返すだけで、送信されたデータを使用してコントローラー アクション ビューを表示しません。それとも、これは完全に悪いアプローチであり、これは不可能ですか? または、CreateWithParams アクションの結果としてデータを再送信して別のアクションを呼び出しますか? もしそうなら、私を正しい方向に向けることができますか?

4

1 に答える 1