RazorPages-ページハンドラー内の部分ビューに異なるモデルを渡すことはできません

Help123

これが可能かどうかはよくわかりませんが、確認したいと思いました。いくつかの異なるハンドラーメソッドがあるかみそりのページがあります。それらのいくつかでは、部分的なビューの結果を返します。

例:

public class BoardMeetingsModel : PageModel
{ 
      //ctor
      //properties

      public IActionResult OnGetFetchCreateMeetingPartial()
          {
             return Partial("_CreateMeetingPartial", new ManipulationDto());
          }
}

私の部分ビューは次のように設定されています。

@using Models.ManipulationModels
@model ManipulationDto

これは部分的なページなので、@ pageディレクティブを使用していません(部分的なページには名前が付けられてい_CreateMeetingPartial.cshtmlます。ただし、ManipulationModelを渡すと、以下のエラーが発生します。

The model item passed into the ViewDataDictionary is of type 'Models.ManipulationDto', but this ViewDataDictionary instance requires a model item of type 'Pages.BoardMeetingsModel'.

私は自分のかみそりのページでパーシャルを呼んでいません。返されたデータをjavascriptモーダルで消費しているため、部分的なページを直接返しています。この動作をオーバーライドすることも可能ですか?デフォルトでは、ベースPageModel(つまりBoardMeetingsModel)が渡されることを常に期待しています。

存在するモデルを明示的に渡しても、部分ビューに対して明示的に指定したモデルではなく、ページモデルを部分ビューが期待していることに驚いています。

Help123

上記の問題を解決するために、私は以下をしなければなりませんでした。ページに複数のモデルがあるため、ManipulationDtoプロパティに[BindProperty]属性がないことに注意してください。複数のモデルがあり、検証(必要なプロパティなど)がある場合、それらはすべてMVCとは異なるかみそりのページでトリガーされます。私の場合、それを処理する方法は、モデルをパラメーターとして直接渡すことでしたが、モデルの状態の検証が失敗した場合にすべての値を割り当てることができるパブリックプロパティがあることも確認しました。

それぞれが独自の検証を持つ複数の一意のモデルがない場合は、bindproperty属性を適用するだけで、心配する必要はありません。

public class BoardMeetingsModel : PageModel
{ 
      //this gets initialized to a new empty object in the constructor (i.e. MeetingToManipulate = new ManipulationDto();)
      public ManipulationDto MeetingToManipulate { get; set; }

      //ctor
      //properties

      public IActionResult OnGetFetchCreateMeetingPartial(ManipulationDto meetingToManipulate)
          {
             //send the page model as the object as razor pages expects 
             //the page model as the object value for partial result
             return Partial("_CreateMeetingPartial", this);
          }

      public async Task<IActionResult> OnPostCreateMeetingAsync(CancellationToken cancellationToken, ManipulationDto MeetingToCreate)
        {
            if (!ModelState.IsValid)
            {
                //set the pagemodel property to be the values submitted by the user
                //not doing this will cause all model state errors to be lost
                this.MeetingToManipulate = MeetingToCreate;
                return Partial("_CreateMeetingPartial", this);
            }
            //else continue
         }
}

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

コレクションをRazorPagesのページモデルにバインドできますか?

分類Dev

RazorPagesはハンドラー内の画像を `` <img> ``要素に返します

分類Dev

RazorPagesコードビハインドクラスで注入されたクラスを使用できません

分類Dev

RazorPagesとサーバーサイドBlazor

分類Dev

RazorPages-AJAX更新のためにビューコンポーネントにルーティングすることは可能ですか?

分類Dev

RazorPagesでハンドラーを使用せずにPageModelプロパティを変更する

分類Dev

RazorPagesのWebサイトを展開できません

分類Dev

RazorPages非同期タスクがモーダルに戻る

分類Dev

RazorPagesプロジェクトのJsonヘルパークラス

分類Dev

RazorPagesのマークアップからページのURLを取得する

分類Dev

RazorPagesで@functionsブロックを使用したエラーと警告

分類Dev

ASP.Net Core RazorPagesアプリケーションがモデル内のプロパティにバインドされていません

分類Dev

RazorPagesを使用して投稿のラベルを更新する

分類Dev

RazorPagesはルーティングテンプレートを変更します

分類Dev

AJAX呼び出しはRazorPagesのページ全体をリロードしますか?

分類Dev

MediatRをMVCプロジェクトからRazorPagesに移動します。基本的な構文を機能させることができません

分類Dev

ASP.NET Core 3.1 RazorPagesアプリケーションで機能しない部分ページのクラスライブラリタグヘルパー

分類Dev

OnPost変更後のRazorPagesモデル値の不一致

分類Dev

RazorとRazorPagesの違いは何ですか

分類Dev

RazorPages-2つのテーブルのEF戻り値

分類Dev

RazorPagesルーティングテクニック

分類Dev

RazorPagesアプリでAPIエンドポイントのルーティングを有効にする

分類Dev

RazorPagesにデフォルト以外のコンストラクターを使用する

分類Dev

RazorPages-抽象クラスをHtml.Partialに渡すとインターフェイスがエラーをスローすることを期待している

分類Dev

RazorPagesでCSRF偽造防止を無効にする方法

分類Dev

RazorPagesのURLパラメータに基づくルーティング

分類Dev

RazorPagesでこの変数にアクセスできるようにする方法

分類Dev

View(model:MyModel);を返します。ASP.Net Core RazorPagesで同等

分類Dev

ASP Core RazorPagesの双方向バインディング

Related 関連記事

  1. 1

    コレクションをRazorPagesのページモデルにバインドできますか?

  2. 2

    RazorPagesはハンドラー内の画像を `` <img> ``要素に返します

  3. 3

    RazorPagesコードビハインドクラスで注入されたクラスを使用できません

  4. 4

    RazorPagesとサーバーサイドBlazor

  5. 5

    RazorPages-AJAX更新のためにビューコンポーネントにルーティングすることは可能ですか?

  6. 6

    RazorPagesでハンドラーを使用せずにPageModelプロパティを変更する

  7. 7

    RazorPagesのWebサイトを展開できません

  8. 8

    RazorPages非同期タスクがモーダルに戻る

  9. 9

    RazorPagesプロジェクトのJsonヘルパークラス

  10. 10

    RazorPagesのマークアップからページのURLを取得する

  11. 11

    RazorPagesで@functionsブロックを使用したエラーと警告

  12. 12

    ASP.Net Core RazorPagesアプリケーションがモデル内のプロパティにバインドされていません

  13. 13

    RazorPagesを使用して投稿のラベルを更新する

  14. 14

    RazorPagesはルーティングテンプレートを変更します

  15. 15

    AJAX呼び出しはRazorPagesのページ全体をリロードしますか?

  16. 16

    MediatRをMVCプロジェクトからRazorPagesに移動します。基本的な構文を機能させることができません

  17. 17

    ASP.NET Core 3.1 RazorPagesアプリケーションで機能しない部分ページのクラスライブラリタグヘルパー

  18. 18

    OnPost変更後のRazorPagesモデル値の不一致

  19. 19

    RazorとRazorPagesの違いは何ですか

  20. 20

    RazorPages-2つのテーブルのEF戻り値

  21. 21

    RazorPagesルーティングテクニック

  22. 22

    RazorPagesアプリでAPIエンドポイントのルーティングを有効にする

  23. 23

    RazorPagesにデフォルト以外のコンストラクターを使用する

  24. 24

    RazorPages-抽象クラスをHtml.Partialに渡すとインターフェイスがエラーをスローすることを期待している

  25. 25

    RazorPagesでCSRF偽造防止を無効にする方法

  26. 26

    RazorPagesのURLパラメータに基づくルーティング

  27. 27

    RazorPagesでこの変数にアクセスできるようにする方法

  28. 28

    View(model:MyModel);を返します。ASP.Net Core RazorPagesで同等

  29. 29

    ASP Core RazorPagesの双方向バインディング

ホットタグ

アーカイブ