フィルタからアクションメソッドにオブジェクトを渡すにはどうすればよいですか?

TimelordNeill

ASP.NETCoreアプリケーションにショッピングカートを実装する際に問題が発生しました。これを行うためにセッションストレージを使用していますが、OnActionExecuted実行するたびに、フィルターに渡されるカートオブジェクトは空です。誰かが理由を知っていますか?

セッションフィルタークラス:

public class WinkelmandSessionFilter : ActionFilterAttribute
{
    private Winkelmand _mand;

    public WinkelmandSessionFilter()
    {
    }

    public override void OnActionExecuting(ActionExecutingContext context)
    {
        _mand = ReadCartFromSession(context.HttpContext);
        context.ActionArguments["cart"] = _mand;
        base.OnActionExecuting(context);
    }

    public override void OnActionExecuted(ActionExecutedContext context)
    {
        WriteCartToSession(_mand, context.HttpContext);
        base.OnActionExecuted(context);
    }

    private Winkelmand ReadCartFromSession(HttpContext context)
    {
        Winkelmand cart = context.Session.GetString("cart") == null ?
            new Winkelmand() : JsonConvert.DeserializeObject<Winkelmand>(context.Session.GetString("cart"));
        return cart;
    }

    private void WriteCartToSession(Winkelmand cart, HttpContext context)
    {
        context.Session.SetString("cart", JsonConvert.SerializeObject(cart));
    }
}

このフィルターを使用する方法:

[ServiceFilter(typeof(WinkelmandSessionFilter))]
public IActionResult BonEdit(Winkelmand mand, NieuwViewModel model)
{
    var bon = new Bon();
    bon.NaamGeadreseerde = model.naamGeadreseerde;
    bon.EmailGeadreseerde = model.emailGeadreseerde;
    bon.NaamGever = model.naamGever;
    bon.Bedrag = model.Bedrag;
    bon.Boodschap = model.Boodschap;
    bon.Winkel = model.Winkel;
    bon.BonId = Guid.NewGuid().GetHashCode();
    mand.bonToevoegen(bon);
    bon.genereerPdf();
    return RedirectToAction(nameof(BonVoorbeeld), bon);
}
NightOwl888

次の名前を使用して、カートをアクションに渡しますcart

context.ActionArguments["cart"] = _mand;

ただし、actionメソッドからアクセスする場合、名前はmandのとおりです

public IActionResult BonEdit(Winkelmand mand, NieuwViewModel model)

アクションメソッドに渡されるには、これら2つの名前が一致している必要があります。

context.ActionArguments["mand"] = _mand;

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

List <インターフェイスを実装するオブジェクト>をメソッドに渡すにはどうすればよいですか?

分類Dev

オブジェクトからアルファベットのtableViewセクションを取得するにはどうすればよいですか

分類Dev

アクションフィルタークラスからOnsuccessスクリプトにJSonオブジェクトを渡すにはどうすればよいですか?

分類Dev

特定のオブジェクト固有のフィールドのインスタンスが渡されたときにメソッドをスタブ化するにはどうすればよいですか?

分類Dev

PHPMyAdminバックアップを復元するときに、「GEOMETRYフィールドに送信したデータからジオメトリオブジェクトを取得できない」を修正するにはどうすればよいですか?

分類Dev

ジャクソンにオブジェクト自体ではなくオブジェクト内のフィールドをシリアル化するように指示するにはどうすればよいですか?

分類Dev

C#のメソッド呼び出しでオブジェクトインスタンスを渡すにはどうすればよいですか?

分類Dev

オブジェクトのArrayListをメインメソッドから別のクラスのメソッドに渡すにはどうすればよいですか(特定のプロパティで並べ替えるには)

分類Dev

カスタムクラスオブジェクトでパンダから `.loc`メソッドを使用するにはどうすればよいですか?

分類Dev

メソッドとフィールドをリテラルオブジェクトに追加するにはどうすればよいですか?

分類Dev

Javaでは、オブジェクトのプリミティブを含まないフィールドを、オブジェクトハンドルとして渡されたメソッドに渡しますか?そうであれば、その可変性にどのように影響しますか?

分類Dev

Javaでは、オブジェクトのプリミティブを含まないフィールドを、オブジェクトハンドルとして渡されたメソッドに渡しますか?そうであれば、その可変性にどのように影響しますか?

分類Dev

リストオブジェクトをjspからstruts2アクションに渡すにはどうすればよいですか?

分類Dev

ビューのボタンからカスタム メソッドを呼び出して、オブジェクトに関連付けられたファイルを削除するにはどうすればよいですか? Railsアプリ

分類Dev

オブジェクトタイププロパティからメソッドのTを設定するにはどうすればよいですか?

分類Dev

リフレクションを介してオブジェクトのフィールドを取得するにはどうすればよいですか?

分類Dev

AnyRefオブジェクトから反映されたランタイムメソッドを取得するにはどうすればよいですか?

分類Dev

オブジェクトのコレクション内のフィールドに番号を付け直すにはどうすればよいですか?

分類Dev

シリアル化可能なオブジェクトのみを取得するメソッドを作成するにはどうすればよいですか?

分類Dev

Pythonインタラクティブシェル:オブジェクトの名前を入力するだけでどのメソッドが使用されるかを知るにはどうすればよいですか?

分類Dev

Androidデータバインディングでオブジェクトのメソッドを使用するにはどうすればよいですか?

分類Dev

作成するオブジェクトをJavaのメソッドのパラメーターとして渡すにはどうすればよいですか?

分類Dev

新しいreduxアクションをディスパッチするときにオブジェクトサブフィールドを適切に削除するにはどうすればよいですか?

分類Dev

Python C APIを使用してオブジェクトのメソッドから定数にアクセスするにはどうすればよいですか?

分類Dev

未知のオブジェクトをメソッドに渡してそのタイプを判別するにはどうすればよいですか?

分類Dev

独自のアダプタメソッドで特性オブジェクトを使用できるようにするにはどうすればよいですか?

分類Dev

Swift-タイプ/オブジェクト(名前またはインスタンス)をメソッドに渡してから(a)タイプを取得する(b)インスタンス化するにはどうすればよいですか?

分類Dev

メソッドパラメータを使用してオブジェクトにアクセスするにはどうすればよいですか?

分類Dev

ビジネスアクション(メソッド)をドメインオブジェクト(クラス)またはドメインサービス(クラス)のどちらに配置する必要があるかを判断するにはどうすればよいですか?

Related 関連記事

  1. 1

    List <インターフェイスを実装するオブジェクト>をメソッドに渡すにはどうすればよいですか?

  2. 2

    オブジェクトからアルファベットのtableViewセクションを取得するにはどうすればよいですか

  3. 3

    アクションフィルタークラスからOnsuccessスクリプトにJSonオブジェクトを渡すにはどうすればよいですか?

  4. 4

    特定のオブジェクト固有のフィールドのインスタンスが渡されたときにメソッドをスタブ化するにはどうすればよいですか?

  5. 5

    PHPMyAdminバックアップを復元するときに、「GEOMETRYフィールドに送信したデータからジオメトリオブジェクトを取得できない」を修正するにはどうすればよいですか?

  6. 6

    ジャクソンにオブジェクト自体ではなくオブジェクト内のフィールドをシリアル化するように指示するにはどうすればよいですか?

  7. 7

    C#のメソッド呼び出しでオブジェクトインスタンスを渡すにはどうすればよいですか?

  8. 8

    オブジェクトのArrayListをメインメソッドから別のクラスのメソッドに渡すにはどうすればよいですか(特定のプロパティで並べ替えるには)

  9. 9

    カスタムクラスオブジェクトでパンダから `.loc`メソッドを使用するにはどうすればよいですか?

  10. 10

    メソッドとフィールドをリテラルオブジェクトに追加するにはどうすればよいですか?

  11. 11

    Javaでは、オブジェクトのプリミティブを含まないフィールドを、オブジェクトハンドルとして渡されたメソッドに渡しますか?そうであれば、その可変性にどのように影響しますか?

  12. 12

    Javaでは、オブジェクトのプリミティブを含まないフィールドを、オブジェクトハンドルとして渡されたメソッドに渡しますか?そうであれば、その可変性にどのように影響しますか?

  13. 13

    リストオブジェクトをjspからstruts2アクションに渡すにはどうすればよいですか?

  14. 14

    ビューのボタンからカスタム メソッドを呼び出して、オブジェクトに関連付けられたファイルを削除するにはどうすればよいですか? Railsアプリ

  15. 15

    オブジェクトタイププロパティからメソッドのTを設定するにはどうすればよいですか?

  16. 16

    リフレクションを介してオブジェクトのフィールドを取得するにはどうすればよいですか?

  17. 17

    AnyRefオブジェクトから反映されたランタイムメソッドを取得するにはどうすればよいですか?

  18. 18

    オブジェクトのコレクション内のフィールドに番号を付け直すにはどうすればよいですか?

  19. 19

    シリアル化可能なオブジェクトのみを取得するメソッドを作成するにはどうすればよいですか?

  20. 20

    Pythonインタラクティブシェル:オブジェクトの名前を入力するだけでどのメソッドが使用されるかを知るにはどうすればよいですか?

  21. 21

    Androidデータバインディングでオブジェクトのメソッドを使用するにはどうすればよいですか?

  22. 22

    作成するオブジェクトをJavaのメソッドのパラメーターとして渡すにはどうすればよいですか?

  23. 23

    新しいreduxアクションをディスパッチするときにオブジェクトサブフィールドを適切に削除するにはどうすればよいですか?

  24. 24

    Python C APIを使用してオブジェクトのメソッドから定数にアクセスするにはどうすればよいですか?

  25. 25

    未知のオブジェクトをメソッドに渡してそのタイプを判別するにはどうすればよいですか?

  26. 26

    独自のアダプタメソッドで特性オブジェクトを使用できるようにするにはどうすればよいですか?

  27. 27

    Swift-タイプ/オブジェクト(名前またはインスタンス)をメソッドに渡してから(a)タイプを取得する(b)インスタンス化するにはどうすればよいですか?

  28. 28

    メソッドパラメータを使用してオブジェクトにアクセスするにはどうすればよいですか?

  29. 29

    ビジネスアクション(メソッド)をドメインオブジェクト(クラス)またはドメインサービス(クラス)のどちらに配置する必要があるかを判断するにはどうすればよいですか?

ホットタグ

アーカイブ