Início > Problemas / Troubles > Problem: File upload with jQuery Mobile and ASP.NET MVC

Problem: File upload with jQuery Mobile and ASP.NET MVC

Desenvolvendo um projeto utilizando jQuery Mobile me deparei com um problema:

Código da View:

@using (Html.BeginForm("Gravar", "Foto", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
            <div class="editor-label">Arquivo de foto</div>
            <div class="editor-field">

            </div>

                <div class="ui-block-a">@Html.ActionLink("Home", "Index", null, new {@data_role = "button"})</div>
                <div class="ui-block-b">Enviar</div>

        </div>
    </div>
}

Código da Action:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Gravar(HttpPostedFileBase arquivo)
{
    try
    {
        if (arquivo == null)
            throw new Exception("Foto não foi recebida!");

        // código para persistir arquivo no servidor

        return RedirectToAction("Index");
    }
    catch (Exception)
    {
        return Redirect("Error");
    }
}

Utilizando jQuery Mobile, sempre que o form é submetido, o arquivo para upload não é enviado junto ao form.
(arquivo é sempre null)

Encontrei uma thread no Forum ASP.NET, mas que não funcionou no meu caso.
http://forums.asp.net/t/1666012.aspx/1

Então lendo a documentação do jQuery Mobile atentamente eis a SOLUÇÃO:

Só é necessário decorar o form que posta o arquivo com: data-ajax=”false”.

Explicação melhor abaixo:

File Inputs

Using a multipart form with a file input is not supported by ajax. In this case you should decorate the parent form with data-ajax=”false” to ensure the form is submitted properly to the server.

Anúncios
  1. 07 - 12 às 6:46 pm

    Estou passando pelo mesmo problema que o seu. Você conseguiu resolver? Se sim, como?

    • 08 - 12 às 3:52 pm

      Na época do artigo não consegui…

      Mas atualmente já sei a solução… Foi falta de ler a documentação do jQuery Mobile.

      Era só decorar o form com: data-ajax=”false”.

      Explicação melhor abaixo:

      File Inputs

      Using a multipart form with a file input is not supported by ajax. In this case you should decorate the parent form with data-ajax=”false” to ensure the form is submitted properly to the server.

  1. No trackbacks yet.

Deixar uma Anotação

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

dotnettips.wordpress.com/

Helping Programmers Since 1994

Viagem e Voo

Dicas para viagens, férias e voos nacionais e internacionais

Ivan Guimarães Meirelles

Analista Desenvolvedor

Void Podcast

Vazio e sem retorno de valor

Elemar DEV

Negócios, tecnologia e desenvolvimento

2,000 Things You Should Know About WPF

Everything a WPF Developer Needs to Know, in Bite-Sized Chunks

blog

so long

Fernando Franzini Blog

Engenharia de Software e Arquitetura Ágil

Gabriel RB.net

Blog técnico, com dicas, códigos, novidades e problemas do dia-a-dia programando.

Alexandre Valente's Blog

Experiências em tecnologia e assuntos diversos

%d blogueiros gostam disto: