MSVC4 では、次の形式でリンクを生成するために受け入れられている方法は何/Controller/Action/parameter
ですか?
私はこれを.ascxに持っています...
<%=Html.ActionLink(linkText:=doc.DocumentName, _
actionName:="CommissionPayment", _
controllerName:="GetDocument", _
routeValues:=New With {.DocID = doc.DocumentID}, _
htmlAttributes:=Nothing)
%>
...これはこれを返します:
http://localhost:56869/GetDocument/CommissionPayment?DocID=5511972
これはRouteConfig.vbにあります
routes.MapRoute(
"CommissionPayment", _
"GetDocument/CommissionPayment/{DocID}", _
New With {.controller = "GetDocument", .action = "GetOBDocument"}, _
New With {.DocID = "\d+"} _
)
...そして、この URL は GetDocument コントローラーで GetOBDocument メソッドを正しく呼び出します。
http://localhost:56869/GetDocument/CommissionPayment/123123123
ただし、ActionLink 呼び出しによって返された「?DocID=123」の URL は何も呼び出しません。無効なガベージです。「リソースが見つかりません」。これは、CommissionPayment ルートの /\d+ パターンと一致しないためだと思います。そのため、サーバーは存在しない CommissionPayment アクションを探します。
明らかに、maproute を省略して を使用すること?DocID
も、URL を手動で記述することもできます。おそらく後者です。ユーザーがファイルをダウンロードすると、そのフォームはブラウザを欺いて、ダウンロード先のファイル名を制御できるようにします。
しかし、ここで何が起こっているのかを理解したいと思います。