0

カスタム フォーム認証を使用する MVC3 プロジェクトがあります。認証が正常に機能するようになりました(機能することを確認するために「HttpContext.Current.User.Identity.IsAuthenticated」プロパティを使用しました)

私は自分のフォームで Ajax を使用しています。

$(document).ready(function () {
    $.ajax({
        url: '/MyPages/MyControllerFunction',
        type: 'POST',
        success: function (result) { $('#MyJavaTemplate').tmpl(result).appendTo('#MyHtmlTable'); },
        error: function (result) {
            $('#errorDisplay').html(result.responseText);
        }
    })
});

このページにアクセスすると (そして ajax がこのコントローラーの関数を呼び出す必要があります)、次のエラーが表示されます。

HTTP エラー 404.0 - 見つかりません お探しのリソースは削除されているか、名前が変更されているか、一時的に利用できません。

私のコントローラー機能:

[HttpPost]
    public ActionResult MyControllerFunction()
    {
        var MyEntity = MyBusinessLogic.GetByID(1);
        return Json(MyEntity);
    }

([Authorized] 属性も追加しようとしましたが、役に立ちませんでした)

これは、ajax を介してコントローラーの関数を呼び出す場合にのみ発生します。フォーム認証で動作するようにプログラムを変更する前は、すべて機能していました。ユーザーが認証されていないかのようです(認証されている場合でも)

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

0

そのコントローラーアクションでGETが指定されていると思いますが、どこがPOSTである必要がありますか

[AcceptVerbs(HttpVerbs.Post)]
public JsonResult MyControllerFunction()
于 2012-11-28T11:56:48.570 に答える
0

私は解決策を見つけました!

ここにありました: Geting 404s when calling Actions in MVC3 with jQuery

私がしなければならなかったのは、以下を変更することだけです:

url: '/MyPages/MyControllerFunction'

URLへ: '@Url.Action("MyControllerFunction","MyPages")'

于 2012-12-02T09:22:59.543 に答える