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
リーリー//オンポストメソッド
ああああ
モデル バインディングは、name 属性を通じてプロパティをバインドします。パラメーターに一致する正しい名前プロパティは、
addrows[index].propertyName
のようになります。ページ内の
リーリーPL
が何であるかはわかりませんが、qty
とprice
入力のみがInvRows モデルに関連しているようです。 。両方の入力名を次のように変更する必要があります:
select 要素が
InvRows
モデルにも関連している場合は、select 名を変更するだけです (例:addrows[@i].ProdId
)。とにかく、名前はモデルによって異なります。さらに、ページには同じ名前の重複した foreach が含まれていますが、これは正しくありません。仮説は次のようになります:
リーリーあなたがフォローできる完全な動作デモ:
###モデル### リーリー ###ページ### リーリーページモデル
リーリーoption
要素にはqty
または
price
属性がないことに注意してください。何をしたいのかわかりませんが、そうする必要があります。これはモデル バインディングには意味がないことに注意してください。リーリー