2017-07-13 6 views
0

私は以下のコードでcshtmlを持っています。ユーザがクリックしたリンクを記録したいのですが、リンクは外部URLかもしれません。javascriptは無効です。javascriptが無効のときにハイパーリンクをクリックするとコントローラアクションが呼び出されます

foreach (var featuredPod in Model.FeaturedPods) 

{ 
<a href="@featuredPod.LinkUrl" class="button blue prePopLink @linkClass">Find out more</a> 
} 
+0

はい、javascriptメソッドを呼び出さないためにjavascriptが無効になっているときに動作します。 –

+0

カミソリのページのライフサイクルを理解していますか?ビューがレンダリングされてクライアントに渡されると、何も検出できません。 Javascriptを使用しても、クライアントが完全に制御できるため、これは100%信頼できるものではありません。ただし、コントローラにリクエストを記録することはできます。 – Robert

+0

はい、ここに投稿しました。何か提案がありますか? – user3910075

答えて

0

ユーザーがクリックしたものを記録したい場合は、サーバー上でこれを処理し、実際のリンクにユーザーをリダイレクトする必要があります

だから、モデルが持っている中で(各featuredPodを想定したようなもの同上の何らかの形)RedirectControllerでRecordAction作用に続い

@Html.ActionLink("Find out more", "RecordAction", "RedirectController", new {Id=featuredPod.Id}, new {@class="", target="_blank"}) 

// get your Model.FeaturedPods where Id = passed in id 
// record what the url is somewhere 
Return Redirect(featuredPod.LinkUrl) 
+0

ありがとう、私はこの方法を考えていませんでした。新しいタブで、このソリューションで達成できますか? – user3910075

+0

はい - ちょうど設定されたtarget = "_空白"のActionLink - 上に改訂された –

+0

アイデアありがとう、ありがとう、必要に応じて上記の答えを微調整、良い仕事。 – user3910075

0

あなただけ@ Html.ActionLinkヘルパーを使用することができませんか?

@Html.ActionLink("Find out more", "Action", "Controller", new {Id=Model.Id}, new {@class="(...)"} 
+0

JavaScriptが無効になっているときに、ユーザーがクリックしたリンクを記録します。 リンクは現在のアプリケーションにはありませんでした。外部にある可能性があります。 上記のコードはスタイルを持つアンカータグ付きのリンクを生成します – user3910075

+0

返信ありがとう、私はコメントの下で理解している私の考えを読んでいませんでした – user3910075

関連する問題