2017-01-23 19 views
4

anchor tag helperを使用すると、ASP.NET Core MVC Viewを新しいブラウザのウィンドウタブで開くことができます。私は次のように試みたが、まずtarget属性にはhref属性も必要であると不平を言った。しかし、わかっているように、asp-action属性のhref属性をMVC Coreに使用することはできません。そうでなければ、以下に示すエラーが発生します。 NOTE:私はトンhis oneのようないくつかの提案を見てきましたが、彼らは関連のヘルパーをタグ付けされていません。新しいウィンドウのタブでビューを開くアンカータグヘルパー

<a asp-action="testAction" href="#" target="_blank">Click Here</a> 

エラー:あなたが求めている場合

InvalidOperationException: Cannot override the 'href' attribute for . An with a specified 'href' must not have attributes starting with 'asp-route-' or an 'asp-action', 'asp-controller', 'asp-area', 'asp-route', 'asp-protocol', 'asp-host', or 'asp-fragment' attribute.

+2

ターゲット属性についてVisual Studioの警告を無視しても、それでも機能します。 hrefを削除してターゲットを保持することができます。アンカータグも閉じます。 それ以外の場合はClick Here を使用できます。もう1つ興味深い解決策は、カスタムタグヘルパーを追加することです。詳細については、この回答を参照してくださいhttps://forums.asp.net/t/2083444.aspx。 –

+1

MVC6は混乱を避けるために名前が変更されたため、もうMVC6はありません。あなたが**使用して**それを使用する場合、あなたは他の人の混乱を増加させるだけです。 – Tseng

+0

@MohamedRozzaこの特定のケースでVS警告を無視するというあなたの提案が働いた。ありがとうございました。 – nam

答えて

2

私はわかりません質問やあなたの発見を共有している場合は?

あなた無視hrefが存在する場合にのみ許可されtarget属性についての警告Visual Studioが、その後、あなたはすぐにハイパーリンクが実際に新しいで動作し、開くことを実現します場合@Mohamed Rozzaは、コメントで述べたようにタブ。 Visual Studioに不満を持たせても。

あなたも指摘してきたように、代替/あなたはこのようなあなたのリンクを作成することができ、回避策があります:

<a href="@Url.Action("testAction","Home")" target="_blank">Click Here</a> 

は、しかし、あなたが言ったように、このアプローチは、関連するヘルパーをタグではありません。しかし何?

私の質問は、これらは以下のとおりです。

  • それはあなたと100%タグヘルパー関連 なるためにあなたのプロジェクトのためにどのように重要なのですか?
  • これは必須ですか?
  • 常にタグヘルパーを使用しているとは限りませんか?
  • 回避策はありますか?
  • Visual Studioで警告メッセージを表示できますか?

あなたの仕事を達成する2つの実例があります。これら2つのアプローチの

    Url.Actionを(使用して回避策を使用することにより、他の
  1. 警告VSを無視することによって
  2. ワン)

どれも間違った/悪いではありません。何らかの理由でこれを克服するために独自のカスタムタグヘルパーを書くことを強いられたら...是非、先に進んでください!

Microsoftに、hrefなしでターゲット属性をサポートしていないタグヘルパーに関するバグを報告したい場合は、ぜひ行ってください!

最後に、私が100%のタグヘルパー関連の必要性を理解していない場合(または私が物事を単純化している場合)、是非、私たちがより良い選択肢を提供するかもしれないので、タグヘルパー用カミソリを知っているように

-1

、我々はあなたができる、

@addTagHelper「*、Microsoft.AspNet.Mvc.TagHelpers」

が_ViewImports.cshtmlという名前のファイルに次の行を追加する必要がありますこのファイルはViewsフォルダにあります。それが存在しない場合は、このファイルを作成します.Razorは自動的にそのファイルを検出します。 これで問題が解決されることを願っています。

関連する問題