如果验证错误,Ajax.ActionLink将无法工作?

时间:2012-09-10 20:48:08

标签: ajax asp.net-mvc actionlink

@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没有必要这样做。可能是另一种解决方案。

感谢。

2 个答案:

答案 0 :(得分: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;
    }
}

答案 1 :(得分: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,该链接将起作用。很可能,你的验证在这种情况下也不起作用。