0

ASP.NET Web アプリケーションで複数のオプション パラメーターを取得しようとしています。MapRouteinを定義すると、メソッドRegisterArea()が壊れていHtml.ActionLink()ます。

次のコードが機能します。

    Public Overrides Sub RegisterArea(ByVal context As System.Web.Mvc.AreaRegistrationContext)
        context.MapRoute( _
            "Register_default", _
            "Register/{controller}/{action}/{id1}", _
            New With {.controller = "Home", .action = "Index", .id1 = UrlParameter.Optional} _
        )
    End Sub

しかし、URL を変更して複数のオプション パラメータ (以下) を含めると、すべてのHtml.ActionLink()メソッドで空の href を持つアンカー タグが作成されます。誰かがこれを引き起こしている原因を教えてもらえますか?

    Public Overrides Sub RegisterArea(ByVal context As System.Web.Mvc.AreaRegistrationContext)
        context.MapRoute( _
            "Register_default", _
            "Register/{controller}/{action}/{id1}/{id2}/{id3}/{id4}", _
            New With {.controller = "Home", .action = "Index", .id1 = UrlParameter.Optional, .id2 = UrlParameter.Optional, .id3 = UrlParameter.Optional, .id4 = UrlParameter.Optional} _
        )
    End Sub
4

2 に答える 2

1

これは MVC3/System.Web.Routing のバグです:

http://haacked.com/archive/2011/02/20/routing-regression-with-two-consecutive-optional-url-parameters.aspx

于 2011-11-22T14:48:01.117 に答える
0

説明した問題のために、最後のパラメーターのみをオプションにすることができます。

于 2011-06-30T19:30:51.707 に答える