none
Problema no post utilizando o método Ajax.BeginForm RRS feed

  • Pergunta

  • Prezados colegas, bom dia!

    Publiquei uma aplicação em ASP.NET MVC 3 (RAZOR) que funciona perfeitamente no ambiente de desenvolvimento, contudo , notei que TODAS as telas que fazem o POST através do método Ajax.BeginForm simplesmente não funcionam, exemplo:

    @using (Ajax.BeginForm("Edit", "Business", new AjaxOptions { HttpMethod = "Post", LoadingElementId = "loading", UpdateTargetId = "dialog", OnFailure = "PostFailure", OnSuccess = "PostSuccess", OnComplete = "PostOnComplete" }))
    {
    @*form com os controles...
    
    }

    Na master page contém as seguintes referências notem que incluem a biblioteca do AJAX:

      <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
         <link href="@Url.Content("~/Content/nnetsistemas.comum.css")" rel="stylesheet" type="text/css" />
         <link href="@Url.Content("~/Content/themes/ui_lightness/jquery-ui-1.8.17.custom.css")" rel="stylesheet"  type="text/css" />
         <script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.maskedinput-1.3.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery-ui-1.8.11.min.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/autocomplete.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/nnetsistemas.comum.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/MicrosoftAjax.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/MicrosoftMvcAjax.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/MicrosoftMvcValidation.debug.js")" type="text/javascript"></script>
        <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
         <link href="@Url.Content("~/Content/dataTables/demo_table_jui.css")" rel="stylesheet"  type="text/css" />
         <link href="@Url.Content("~/Content/dataTables/demo_page.css")" rel="stylesheet"  type="text/css" />
         <script src="@Url.Content("~/Scripts/jquery.dataTables.js")" type="text/javascript"></script>

    No web.config possui as entradas abaixo:

    <appSettings>
        <add key="webpages:Version" value="1.0.0.0"/>
        <add key="ClientValidationEnabled" value="true"/>
        <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
      </appSettings>


    A única coisa que não rola é o POST, não consigo ainda visualizar o erro... Alguém pode me ajudar aí?

    Obrigado!


    terça-feira, 28 de agosto de 2012 15:33

Todas as Respostas

  • Tirando a referência da action e do controller funciona, tipo assim:

    @using (Ajax.BeginForm(
    new AjaxOptions { HttpMethod = "Post", LoadingElementId = "loading", UpdateTargetId = "dialog", OnFailure = "PostFailure", OnSuccess = "PostSuccess", OnComplete = "PostOnComplete" }))
    {
    @*form com os controles...
    
    }
    Alguma configuração de rota deve ser feita?

    quarta-feira, 29 de agosto de 2012 02:39
  • Olá Ivaldo olha meu exemplo,

    View

    <script src="../../Scripts/jquery-1.7.1.min.js" type="text/javascript"></script>
    <script src="../../Scripts/jquery.unobtrusive-ajax.min.js" type="text/javascript"></script>
    
    @using (Ajax.BeginForm("Salvar","Home",new AjaxOptions
        { 
            HttpMethod="Post",
            InsertionMode=InsertionMode.Replace,
            UpdateTargetId = "Minutos"
            //Voce pode usar os eventos aqui, só esses já dá para fazer funcionar
        }))
        {
           <input id="Submit1" type="submit" value="submit" /> 
        }
    
    <div id="Minutos"/>

    Controller

    [HttpPost]
            public ActionResult Salvar()
            {
                return Content(DateTime.Now.Minute.ToString());
            }

    olha se por acaso não tá esquecendo de nada.

    att.

    quarta-feira, 29 de agosto de 2012 18:22
    Moderador