[ad_1]
ASP.NET の学習が進んでいることがとても気に入っています。 昨日、ASP プロジェクトに 2 つのフォルダーが必要であることを学びました。1 つ (Pages) には ASP Razor ページが含まれ、もう 1 つ (wwwroot) には Razor ページのスタイル ファイルが含まれています。 また、ユーザーに表示されるページの動作全体が、スタートアップ C# コード ファイル内のコード ビハインド ファイルによって制御されることも学びました。たとえば、次の行を確認するまでブートストラップやカスタム CSS スタイルを使用できないことです。
app.UseStaticFiles();
ここで、モーダル内にフィールド名と説明を入力したブートストラップ フォームを作成し、フォームのポスト アクションが呼び出されたときにモデル ファイルがこれらの値を受け取ることができるように、ASP 識別子を与えました。 Models フォルダーを作成し、IndexModel という新しいクラス ファイルを追加して、名前とクエリに対してそれぞれ Name と description という 2 つのゲッターとセッターを宣言しました。 以下のコード ブロック セクションで、関連するすべてのファイルの定義を確認してください。
私が試したこと:
これは私の IndexModel.cs ファイルです
public class IndexModel { public string Name { get; set; } public string Description { get; set; } //receive the values entered by the user through the onpost method public void OnPost() { Name = Name; Description = Description; } }
これがフォームです
<form onsubmit="return false;" action="post" id="form"> <div class="form-group"> <label for="name">Name</label> <input type="text" class="form-control" id="name" placeholder="Enter your name" asp-for="Name"> </div> <div class="form-group"> <label for="query">Query</label> <textarea class="form-control" id="query" style="margin-top:20px" rows="5" placeholder="Enter your query" asp-for="Description"></textarea> </div> </form>
この行を呼び出そうとしたときに、JavaScript ファイルでユーザー入力を処理しました
//means everything is okay, now pass the values entered to the ASP models form. Submit();
エラーが発生します
AmbiguousMatchException: The request matched multiple endpoints. Matches:
このエラーは何ですか?どうすれば解決できますか?
解決策 1
通常、これは、同じ POST シグネチャ、つまり同じパラメータを持つルートが複数あることを意味します。
また、あなたの Form
プロパティが正しくありません。 参照する: ASP.NET Core のフォームのタグ ヘルパー | Microsoft Learn[^]。 提供されたリンクのサンプルによると、ページを検査すると次のようになります。
<form method="post" action="/Demo/Register"> <!-- Input and Submit elements --> <input name="__RequestVerificationToken" type="hidden" value="<removed for brevity>"> </form>
[ad_2]
コメント