検索

ホームページ  >  に質問  >  本文

.NET Core Razor Pages を使用して、請求書ヘッダーと請求書明細を単一ページの送信フォームに保存する

1. 説明

「作成」ページを開き、請求書のヘッダー データ、請求書の動的明細データを入力し、すべてを 1 回の送信で保存したいと考えています。

(* コードを更新) 複数の行を追加できない RowList エラーをなんとか解決しました:

AddRange を使用して ASP.NET Core Razor ページに複数の行を挿入する方法

今度はエラーが発生します

1.1 エラー

ArgumentNullException: 値を null にすることはできません。 (パラメータ「ソース」)

System.Linq.ThrowHelper.ThrowArgumentNullException(ExceptionArgument パラメーター)

ArgumentNullException: 値を null にすることはできません。 (パラメータ「ソース」)

リーリー

...

リーリー

Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperExecutionContext.GetChildContentAsync(bool useCachedResult, HtmlEncoder エンコーダー) Microsoft.AspNetCore.Mvc.TagHelpers.RenderAtEndOfFormTagHelper.ProcessAsync(TagHelperContext コンテキスト、TagHelperOutput 出力) Microsoft.AspNetCore.Razor.Runtime.TagHelpers.TagHelperRunner.g__Awaited|0_0(タスク task, TagHelperExecutionContextexecutionContext, int i, int count) Create.cshtml の EPIDENT5.Pages.Magazina.Pages_Magazina_Create.ExecuteAsync()

リーリー

何かが足りないことはわかっていますが、何が問題なのか理解できません。

2.質問

どうすればいいですか?

<强>3.フロントエンドコード:

リーリー

4.バックエンドコード

//データバインディング部分

リーリー

//onget メソッド、行数 ID は red

リーリー

//オンポストメソッド

ああああ

P粉298305266P粉298305266238日前439

全員に返信(1)返信します

  • P粉127901279

    P粉1279012792024-03-30 17:33:35

    モデル バインディングは、name 属性を通じてプロパティをバインドします。パラメーターに一致する正しい名前プロパティは、addrows[index].propertyName のようになります。

    ページ内の PL が何であるかはわかりませんが、qtyprice 入力のみが InvRows モデルに関連しているようです。 。両方の入力名を次のように変更する必要があります:

    リーリー

    select 要素が InvRows モデルにも関連している場合は、select 名を変更するだけです (例: addrows[@i].ProdId)。とにかく、名前はモデルによって異なります。

    さらに、ページには同じ名前の重複した foreach が含まれていますが、これは正しくありません。仮説は次のようになります:

    リーリー

    あなたがフォローできる完全な動作デモ:

    ###モデル### リーリー ###ページ### リーリー

    ページモデル

    リーリー

    以下のデフォルトの

    option

    要素には
    qty

    または price 属性がないことに注意してください。何をしたいのかわかりませんが、そうする必要があります。これはモデル バインディングには意味がないことに注意してください。 リーリー

    返事
    0
  • キャンセル返事