0

コントローラーのインデックス関数は、'a'、'b'、'c' の 3 つのパラメーターを取ります。現在、action?a="1"&'b'=2&'c'=3 のような URL でこれらのパラメーターに値を渡すことができます。

action/"value" または action/b="value" の形式で URL の param 'b' に値を送信したいと思います。Global.asax.cs でルーティングを編集しようとしましたが、「パスのコントローラーが見つからないか、iController を実装していません」というエラーが表示されます。この問題に関するヘルプは大歓迎です

4

1 に答える 1

1

これを、次の方法で global.asax のルート テーブルに組み込む必要があります。

RouteTable.Routes.Add(new Route
{
    Url = "[controller]/[action]/[a]/[b]/[c]",
    Defaults = new { controller = "myController", action = "myAction", a = "1", b = "2", c = "3" },
    RouteHandler(typeof(MvcRouteHandler)
});

それを分解するために、Url パラメーターは予想される Url の構造を示し、defaults パラメーターはこれらのいずれかのデフォルト値を提供します。これは常に のルートmyDomain.com/myController/myAction/1/2/3または のような構造に一致する何かを期待することに注意してくださいmyDomain.com/myController/myAction///。これらの値の異なるサブセットが必要な場合は、それに応じてルートを調整する必要があります。また、このルートがルート定義のかなり早い段階で表示されるようにする必要があります。ルートは最初に見つかった一致するルートによって決定されるため、より複雑な (到達するのがより難しい) ルートは、デフォルト ルートが見逃したものをキャッチできるように、常に早期に実行する必要があります。

参照: http://weblogs.asp.net/scottgu/archive/2007/12/03/asp-net-mvc-framework-part-2-url-routing.aspx

于 2012-09-27T14:23:04.477 に答える