ActionLink
の確認メッセージを表示できますか?
Javascriptを使用する必要がありますか?それなしで可能ですか?
例を挙げていただけますか?
ありがとうございました。
//I want to make a confirmation message appear before the link opens.
@Html.ActionLink("Checkout and view order list", "Order", "Order")
オーバーロードHtml.ActionLink(string linkText, string actionName, string controllerName, object RouteValues, object HtmlAttributes)
といくつかのjavascriptを使用して、次のことができます。
_@Html.ActionLink("Checkout and view order list", "Order", "Order", null, new { onclick="return confirm('Are you sure you want to click this link?')" })
_
これにより、HTML属性onclickが追加され、リンクがクリックされたときに指定されたjavascriptが実行されます。リンク(またはフォームの送信ボタン)のonclickイベントがfalseを返した場合、アクション(リンクをたどる、フォームを投稿する)は発生しません。 confirm(message)
関数は、指定されたメッセージを含む確認ダイアログをユーザーに表示し、ユーザーの応答に応じてtrueまたはfalseのいずれかを返します。
編集:この回答は使用せず、ジムの他の回答を使用してください。
ActionLink
を使用することはできません-確認をポップアップするには、JavaScript(リストされているものなど ここ )を作成する必要があります。 Url.Action
を使用して、JavaScriptが最終的に投稿または取得エンドポイントに使用するURLを生成できます。
私のJavaScriptは悪いですが、これでアイデアが伝わると思います。
<a href="javascript:confirmation();">Checkout and view order list</a>
<script>
function confirmation() {
var answer = confirm("Confirm?")
if(answer) {
// Do something here, post or get
window.location = @Url.Action("Order", "Order");
}
}
</script>
私の場合、すでにアクションを呼び出しているボタンがありました。
<input id="ButtonDelete" type="button" value="Delete Experiment" class="big-nevigation-button" onclick="location.href='@Url.Action("DeleteExperiment", "Experiment", new { experimentId = Model.ExperimentId })'" />
ジムの答えを読んだ後、私はそれを次のように変更しました。
<input id="ButtonDelete" type="button" value="Delete Experiment" class="big-nevigation-button" onclick="if (confirm('Are you sure you want to delete experiment???')) location.href='@Url.Action("DeleteExperiment", "Experiment", new { experimentId = Model.ExperimentId })'" />
そしてそれは素晴らしい働きをします!ありがとうジム!