0

以下のようなカスタムルートを設計しました

"\client\{CLIENTCODE}\{Controller}\{View}\{id}"

このルート以外にも、デフォルトの MVC ルートはそのままです。

{CLIENTCODE} は URL 内の 4 文字の長さの文字列で、接続文字列を検出し、それぞれのデータベースで操作を行うために使用されます。

私は2つの問題に直面しています

  1. AJAX URL を「Controller\View」として使用すると、すべての Ajax リクエストがデフォルト ルートを使用します。すべての AJAX リクエストに {CLIENTCODE} を追加するにはどうすればよいですか。

  2. セッションの有効期限が切れた後、URL から {CLIENTCODE} が失われ、Global.ASAX で取得できません。

4

1 に答える 1

1

このルートを ajax リクエストに追加する必要がある場合は、ルートに ajax URL を設定する必要があります。

$.ajax({
        type: "POST",
        url: '@Url.RouteUrl("routeName", new { code="code", controller="controller", action="action"})',            
        dataType: "html",
        success: function (data) {
            $("#product-attribute-values").append(data);
        }
    })

そして、「セッションの有効期限が切れたときに失う」とはどういう意味ですか? global.asax で次のようなコードを使用して、すべてのルート値にアクセスできます。

protected void Application_BeginRequest()
    {
        string code = Request.RequestContext.RouteData.Values["code"].ToString();
    }
于 2013-06-13T08:03:55.210 に答える