1
@Ajax.ActionLink("like", "Like", "Article", new { postId = Model.post.PostId, userName = User.Identity.Name }, new AjaxOptions { OnBegin = "OnBegin" }, new { @class = "like_link" })

function OnBegin()
{
    if( true ) // value from client side. not returning value from server.
    {
        // I dont want to work the link. I want only alert message.
    }
    else
    {
        // Go to controller with parameters.
    }
}

上記のようなものが欲しいです。OnBegin はそれを行う必要はありません。別の解決策かもしれません。

ありがとう。

4

2 に答える 2

2

OnBeginするべきです。コントローラーアクションを実行するかどうかに応じて、単にtrueまたはを返します。false

function OnBegin() {
    if (true) // value from client side. not returning value from server.
    {
        // I dont want to work the link. I want only alert message.
        alert('alerting some message');
        return false;
    }
    else {
        // Go to controller with parameters.
        return true;
    }
}
于 2012-09-10T21:01:21.497 に答える
0

フォームが有効でない場合、ユーザーがリンクの URL にリダイレクトされないようにしたいので、これを読んでいます。その場合は、リンクのクリック イベントに接続し、JavaScript で検証チェックを行い、すべてが有効な場合はユーザーに続行させるか、フォームが無効な場合は停止します。jQuery では、次のようになります。

$(document).ready(function() {
    $('a.like_link').click(function (e) {
        if (formIsNotValid) { // Insert a real conditional here that works for your needs.
            e.preventDefault();

            // Display a message here?
        }

        // Don't need an else, everything is valid, let the user move on.
    });
});

編集: ユーザーが JavaScript をオフにしている場合、リンクは機能します。その場合、検証も機能しない可能性があります。

于 2012-09-10T20:59:23.293 に答える