このビューは、それぞれが外部URLを指しているハイパーリンクのリストを表示することを想定しています。目標は、ユーザーがこれらのリンクの1つをクリックして、選択したURLで新しいタブをブラウザーに開くようにすることです。現在、私は次のマークアップを持っています:
@Html.ActionLink("SomeSite", "http://subdomain.mydomain.com/SomeSite")
このマークアップは以下を生成します:
http://localhost:58980/AccessInstance/http%3a/subdomain.mydomain.com/SomeSite
の代わりに :
http://subdomain.mydomain.com/SomeSite
これを期待どおりに機能させるために、マークアップで何を変更できますか?
そのために@Html.ActionLink
を使用する必要はありません。単純なAタグを使用するだけです。
<a href="http://subdomain.mydomain.com/SomeSite">SomeSite</a>
Html.ActionLink
は、MVCコントローラーで定義されたアクションへのリンクを生成するためのものです同じアプリ内。絶対URLにリンクしているため、Html.ActionLink
が提供する機能は必要ありません。
二通り :
1。フルリンクでデータベースの列を更新します。
例:SQL
:
update ProductTable set LinkColumn='http://www.example.com/Product/Mobiles' where ID=123
ASP MVCビュー
<a href="@model.ProductLink">View</a>
2。http
パーツをハードコードし、モデルからリストする
<a href="http://@model.ProductLink">View</a>
誰かが役に立てば幸いです。
RouteConfigurationを考慮する必要があります。
route.MapRoute(name: "Default"、url: "{controller}/{action}"
リダイレクトするリンク全体としてアクションリンクを指定しているためです。 @rossipediaの回答を使用することをお勧めします。リンク内にスパンを配置するなど、トリッキーなことを行うことができるからです。
インデックスページでクリック可能なリンクを表示します
<td>
@Html.ActionLink(item.FileName, "../Uploads/Catalogue/"+item.FileName)
</td>
ViewBagは過度に使用されており、ほとんどの場合最良の選択ではありませんが、これは、動的に変化する特定のクエリ文字列パラメーターを使用してリダイレクトする必要があるURLをすばやく修正するために他の誰かのmvcアプリを継承するときに行っていたものです
<a target="_parent" href="http://localhost:56332/services/@ViewBag.factory">View Service</a>