0

ASP.NET MVC 3 でルートを使用しようとすると、いくつかの問題が発生します。次の URL にいます:

mysite/InitialPage/123456 <- パートナー ID

ルーティング...

routes.MapRoute(
    "InitialPageRoute",
    "InitialPage/{partnerID}",
    new { controller = "InitialPage", action = "Index" }
);

正常に動作します。Html.ActionLink を配置して別のページにリダイレクトすると...

@Html.ActionLink("Another copy of some bill", "CopyOfBill", "Payment", new { partnerID = ViewBag.PartnerID })

そして、このようにルーティング...

routes.MapRoute(
    "CopyOfBillRoute",
    "Payment/CopyOfBill/{partnerID}",
    new { controller = "Payment", action = "CopyOfBill" }
);

そして機能しません。誰でも何か考えがありますか?

ありがとう!!!

4

3 に答える 3

0

まず、上部のGlobal.asaxにルートを記述します。トップあなたはあなたの最初のルートを作ります

routes.MapRoute(
    "CopyOfBillRoute",
    "Payment/CopyOfBill/{partnerID}",
    new { controller = "Payment", action = "CopyOfBill" }
);

このようにルートを使用します

@Html.RouteLink("click", "Regis",new {id=>id.Id})

私はこれがあなたを助けると思います

于 2012-09-26T18:13:07.800 に答える
0

このオーバーロードを使用

public static MvcHtmlString ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName,
    Object routeValues,
    Object htmlAttributes
)

だからあなたのコードは

@Html.ActionLink("Another copy of some bill", "CopyOfBill", "Payment",
                                    new { partnerID = ViewBag.PartnerID },null)

アンカー タグに HTML 属性を指定したくないと仮定します。必要に応じて、最後のパラメーター ( null) を HTML 属性に置き換えます。

于 2012-09-26T17:50:35.447 に答える
0

RouteLinkコントローラーとアクションの両方がハードコーディングされているため、この場合は (ルートに明示的に名前を付ける)を使用するのが最善かもしれません。

@Html.RouteLink("Another copy of some bill", "CopyOfBillRoute", 
    new { partnerID = ViewBag.PartnerID })
于 2012-09-26T17:46:34.153 に答える