2

Razor @ Html.ActionLinkヘルパーを介して作成された[a]タグにID属性を割り当てようとすると、奇妙な結果が得られます。

私の元のコードはこれでした:

 @Html.ActionLink("Create New Order", "Index", "NewOrder")

これは正しく機能し、http://www.mysite.com/NewOrderとしてリンクを作成しますが、要素にIDタグを追加したいと思います。

それから私はこれを試しました

 @Html.ActionLink("Create New Order", "Index", "NewOrder", new {@id = "orderlink"})

これにより、 http://www.mysite.com/Orders?Length= 8のリンクが作成されます

アップデート:

提供されているソリューションを使用すると、

@ Html.ActionLink( "Create New Order"、 "Index"、 "NewOrder"、new {@id = "orderlink"}、null)

次のようなリンクが表示されます: http ://www.mysite.com/NewOrder/Index/orderlink

リンク/ルートにorderlinkを追加したくありません。[a]タグ属性に追加したい。質問の上部を参照してください。

私はこれを手に入れたい:

 <a id="orderlink" href="/tcap/NewOrder/Index" >Create New Order</a>
4

2 に答える 2

6

この過負荷を試してください。

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

したがって、コードは次のようになります

 @Html.ActionLink("Create New Order", "Index", "NewOrder", 
              new {@id = "orderlink"},null)

編集:あなたのコメント/更新された質問に従って

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

 @Html.ActionLink("Create New Order", "Index", "NewOrder")

mysite.com/NewOrder/IndexこれはあなたにURLを与えるでしょう

EDIT2:必要に応じて、 <a id="orderlink" href="/tcap/NewOrder/Index" >Create New Order</a>

これを使用して、このオーバーロードの5番目のパラメーターとしてHTML属性を渡します

@Html.ActionLink("Create New Order", "Index", 
            "NewOrder",null,new {@id="orderlink"})
于 2012-08-03T16:30:06.723 に答える
2

先日ここでこれに答えました:

パラメーターを使用したASP.NETMVCの基本的なルーティング

一言で言えば、オーバーロードに最後のnullパラメータを追加します。

@Html.ActionLink("Create New Order", "Index", "NewOrder", 
                  new {@id = "orderlink"}, null)

null最後のパラメータ( )としてを追加するhtmlAttributesだけで、このシナリオでは欠落しています(Html.ActionLinkには9つのオーバーロードがあるため、正しい実装を見逃すのは非常に簡単です)。

于 2012-08-03T16:34:13.330 に答える