从microsoft Ajax.BeginForm迁移到jquery

从microsoft Ajax.BeginForm迁移到jquery,jquery,asp.net-mvc,Jquery,Asp.net Mvc,我慢慢地从microsoftajax转移到jquery,以获取我所有的ajax内容。我唯一剩下的就是一些表单,它们通过使用ajax.Beingform使用microsoft ajax发布。这是一个asp.net mvc站点,因此submit应该调用控制器post操作 将其转换为jquery以便删除对MicrosoftAjax的引用的最简单方法是什么 submit应调用控制器post操作 您可以使用纯javascript简单地执行相同的操作 如果添加链接按钮 <asp:LinkButton

我慢慢地从microsoftajax转移到jquery,以获取我所有的ajax内容。我唯一剩下的就是一些表单,它们通过使用ajax.Beingform使用microsoft ajax发布。这是一个asp.net mvc站点,因此submit应该调用控制器post操作

将其转换为jquery以便删除对MicrosoftAjax的引用的最简单方法是什么

submit应调用控制器post操作

您可以使用纯javascript简单地执行相同的操作

如果添加链接按钮

<asp:LinkButton runat="server" id="lnkAddOrder" 
    Text="Add Order" onclick="lnkAddOrder_Click" />
页面示例:


已编辑

抱歉,直到现在我才看到MVC,当我阅读它时它不在那里,或者我只是错误地假设:-/

  • 下载并包含插件
  • Ajax.BeginForm
    替换为
    Html.BeginForm
  • 登记表格:

    $(function() {
        $('#formId').ajaxForm();
    });
    
  • 表单提交后,使用成功回调更新DOM。此步骤是可选的:

    $(function() {
        $('#formId').ajaxForm({
            success: function(data) {
                $('#someplaceholder').html(data);
            }
        });
    });
    

  • 您可以使用jQuery修改表单的提交行为

    例如:

    $("#your-form").submit(function() {
        $.post($(this).action, function(data) {
            //do something with the data
        });
    
      return false;
      //make sure you return false so the form won't be posted regularly
    });
    

    如果您的表单如下所示,则可能最容易使用来实现大部分此功能:-

    <%= Ajax.Form(new AjaxOptions {
             Url = theUrl,
             Method = theMethod,
             Confirm = confirmFunction, 
             InsertionMode = InsertionMode.Before,
             OnBegin = onBegin,
             OnComplete = onComplete,
             OnFailure = onFailure,
             OnSuccess = onSuccess,
             UpdateTargetId = elementId,
             LoadingElementId = loadingElementId
             });
    
    唯一的问题是复制LoadingElementId、UpdateTargetId和InsertionMode属性

    如果要复制InsertionMode.Replace,可以将附加的目标选项传递给ajaxForm插件。如果要复制其余的功能,您必须在发送前编写自己的成功和完整的事件处理程序

    类似于以下内容的内容将使用InsertionMode.Before、UpdateTargetId=“Test”、LoadingElementId=“Loader”模拟表单:-


    你能发一些代码吗?我没有使用MSAJAXforMVC,但是如果它只是一个表单,那么您可以通过jquery将提交绑定到它,或者将提交按钮更改为常规按钮,并使用一个点击事件将其绑定到服务器上。如果你在做一个帖子,那么你就在你的动作方法上贴上一个帖子标签。
    <%= Ajax.Form(new AjaxOptions {
             Url = theUrl,
             Method = theMethod,
             Confirm = confirmFunction, 
             InsertionMode = InsertionMode.Before,
             OnBegin = onBegin,
             OnComplete = onComplete,
             OnFailure = onFailure,
             OnSuccess = onSuccess,
             UpdateTargetId = elementId,
             LoadingElementId = loadingElementId
             });
    
    $("#yourFormId").ajaxForm({
        url : theUrl,
        type : theMethod,
        beforeSubmit : confirmFunction,
        beforeSend : onBegin,
        complete : onComplete,
        success : onSuccess,
        error : onFailure
    });
    
    $("#yourFormId").ajaxForm({
         beforeSend : function() { $("#Loader").show(); },
         complete : function() { $("#Loader").hide(); },
         success: function(result) { $(result).prependTo("#Test"); }
    });