0

既存の ASP.NET MVC 3 Web サイト用にモバイル サイトを作成しており、jQuery モバイルを使用することにしました。ここまでは順調ですが、JavaScriptResult を返すアクションに対して Ajax ポストを実行するビューの 1 つを再利用しようとすると、UI は返された JavaScript を実行するだけでなく、ポスト URL をたどってしまいます。

これは再利用されたアクションであり、デスクトップ サイトの場合、すべてのブラウザは JavaScript を実行するだけで、意図したとおりにページにとどまります。jQuery モバイルの何かが、ブラウザが URL をたどる追加の動作を引き起こすとしか思えません。

ブラウザが投稿 URL をたどらないようにする方法と方法を誰か教えてもらえますか?

@using (Ajax.BeginForm("DoSomething", "Controller", null, new AjaxOptions { LoadingElementId = "AjaxLoadGif" }))
{

    ... form elements etc

    <input id="btn" class="btn" type="submit" name="" value="Click Me"/>
}

ターゲットアクションは次のようになります...

public JavaScriptResult DoSomething(SomeInfo info)
{

    return JavaScript('showValidationErrorHtml(); return false;');

}

ブラウザはhttp://site.com/Controller/DoSomethingで終了します

4

1 に答える 1

1

フォーム送信をハイジャックしないように jQuery Mobile に具体的に指示する必要があります。data-ajax="false"タグに属性を設定することでそれを行うことができます<form>

<form data-ajax="false" ...>
    ...
</form>

このようにフォームを設定すると、フォームの AJAX 送信を自分で処理する必要があります。私は ASP.net MVC 3 に精通していませんが、これがまだ行われていない場合は、次の例をご覧ください。

$(document).on('submit', '#my-form-id', function () {
    //handle form submission, most likely with $.ajax([OPTS]);
    return false;
});
于 2012-09-17T16:51:26.813 に答える