1

この問題が発生しており、Google と StackOverflow を検索しましたが、解決策が見つからないようです。

Global.asax.csに次のルートをマップしています

 routes.MapRoute(
       "posRoute", // Route name
       "pos/{guid}", // URL with parameters
       new { controller = "Pos", action = "Index", guid = UrlParameter.Optional } // Parameter defaults
 );

 routes.MapRoute(
       "foxRoute", // Route name
       "fox/{guid}", // URL with parameters
       new { controller = "Fox", action = "Index", guid = UrlParameter.Optional } // Parameter defaults
        );

HTML ヘルパー Actionlink でリンクを作成したいのですが、空のリンクが返され続けます。

@Html.ActionLink("Proceed", "device")

戻り値

<a href="">Proceed</a>


@Html.ActionLink("Proceed", "device", "Fox" , new { guid = "test" })

戻り値

<a href="" guid="test">Proceed</a>

期待される結果は次のとおりです。

<a href="/fox/index/test">Proceed</a>

またはそれ以上

<a href="/fox/test">Proceed</a>
4

1 に答える 1

1

このオーバーロードを試してください。

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

だからあなたのコードは

@Html.ActionLink("Proceed", "device", "Fox" , new { guid = "test" },null)

CSS class/ ID of elementなどの HTML 属性を渡したい場合は、最後のパラメーター calue (この場合は null) をそれに置き換えることができます。

また、特定のルートの下に一般的なルート定義があることを確認してください

routes.MapRoute(
            "posRoute", 
            "pos/{guid}", 
            new { controller = "Pos", action = "Index", 
            guid = UrlParameter.Optional } // Parameter defaults
        );

routes.MapRoute(
            "foxRoute", // Route name
            "fox/{guid}", // URL with parameters
            new { controller = "Fox", action = "Index",
            guid = UrlParameter.Optional } // Parameter defaults
        );

routes.MapRoute("Default","{controller}/{action}/{id}",
          new { controller = "Home", action = "Index",
                    id = UrlParameter.Optional })
于 2012-09-14T13:20:08.397 に答える