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应该这样做。只需返回truefalse取决于您是否要执行控制器操作:

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 回答