0

我设计了一条自定义路线,如下所示

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

除了这条路线,我还有完整的默认 MVC 路线。

{CLIENTCODE} 是 URL 中的 4 个字符长度的字符串,用于检测连接字符串并对各个数据库进行操作。

我面临两个问题

  1. 当我将 AJAX URL 用作“Controller\View”时,所有 Ajax 请求都采用默认路由。如何将 {CLIENTCODE} 附加到每个 AJAX 请求。

  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 回答