2

これは何よりも「スタイル」の質問だと思います。

ユーザーが検索条件を入力するメインページと、条件に一致するアイテムのリストが表示されるリストページで構成されるMVCアプリケーションがあります。

ユーザーがメインページでの検索を要求すると、MainPage.cshtmlには、ListPageControllerを呼び出して新しいページを生成するための次のコードがあります。

var ParamString = 
  "Param1=" + Param1
  + "+Param2=" + Param2
  + "+Param3=" + Param3
  + "+Param4=" + Param4
  + "+Param5=" + Param5;
window.open(encodeURI("/ListPage/ShowList?" + ParamString), "_self");

ListPageController.csのShowListのコードは次のとおりです。

public ActionResult ShowList
(
  String p_Param1
, String p_Param2
, String p_Param3
, String p_Param4
, String p_Param5
)
{
    ListPageModel M = new ListPageModel;
    M.Param1 = p_Param1;
    M.Param1 = p_Param2;
    M.Param1 = p_Param3;
    M.Param1 = p_Param4;
    M.Param1 = p_Param5;
    return View("ListPage", M);
}

次に、ListPage.cshtmlは、指定されたパラメーターを使用してjQueryAjax呼び出しを介してデータを取得します。

パラメータの文字列でwindow.openを使用することは、これを行うための「正しい」方法ですか?パラメータが5つではなく多数ある場合、URLはかなり大きくなりませんか?

または、たとえば、ウィンドウを開く呼び出しをListPageControllerに含める必要があります。これは、たとえばjQuery.post呼び出しによって呼び出されますか。

4

2 に答える 2

1

jQuery を使用する必要はまったくないと思います。結局のところ、現在の実装の最終結果は、サーバーからページ全体をリロードすることです。

これを行うための最も簡単でクリーンな方法は、メソッド「POST」とアクション「/ListPage/ShowList」を使用して、検索フィールドを昔ながらのフォーム内に配置することです。JavaScriptは必要ありません!

于 2012-10-30T15:54:22.487 に答える
0

この場合、JQueryを使用する必要はありません。HtmlHelper.Actionを使用し、入力したパラメーターをそこに渡すことで、ShowListアクションを呼び出すことができます。これにより、作業も簡単になります。

于 2012-10-30T16:05:20.933 に答える