私はGETリクエストでいくつかのパラメータをクエリ文字列のコントローラに送信しようとしています。クエリ文字列内にあるすべてのパラメータがDictionary<string, string>
の[FromQuery]
を使用して取得されています。パラメータ名の1つにドット(.
)の記号が含まれるまでうまくいきます。私はRequest.Query
オブジェクトをチェックして、それはよく解析されているように見えますが、私の辞書オブジェクトはこれを正しく取得しています。だから、[FromQuery]
バインダーのバグのように見えるか、何か間違っています。 debbuged Request.Query
の値と鉱山以下parameters
とコード: ?query=&InspectionType=Safety&ItemType=InspectionPoint&RecordParentGUID=9275bee2-0a2d-461c-8835-51880e76f035&parent.ResultClassCode=parent.ResultClassCode
ASP.NETのコアFromQueryのドット記号が無効なパラメータを取得中
答えて
ようになります。 (ドット)、[と]文字は、モデルバインディングプロセスでパスの区切り文字としてASP.NET MVC Coreによって内部的に使用され、その周りに(AFAIK)はありません。
クエリ文字列から生の値にアクセスする場合は、Request.Query
がはるかに簡単な解決方法です。純粋Dictionary<string, string>
にそれを回すために
:
Request.Query.ToDictionary(kvp => kvp.Key, kvp => kvp.Value);
ええ、これは私がすでに行ったことです。バインダー自体の中に何らかのバグがあるかもしれないと思った。 –
最高の答えを自由に受け入れてください。 –
これを回避する方法として受け入れても、すでに問題はgithubで問題を作成していますが、まだ応答はありません。新しい情報があれば更新されます。 –
あなたがResultClassCodeするparent.ResultClassCodeを平らにする部分ビューを使用することができます:
これは次のように送信されたクエリ文字列がどのように見えるかありますか?
部分は、この
@model parent
<div class="form-group">
<label asp-for="ResultClassCode"></label><span asp-validation-for="ResultClassCode" class="text-danger"></span>
<input asp-for="ResultClassCode" class="form-control">
</div>
- 1. 無記号:パラメータ
- 2. 無効なASP.NETテキストボックスの値の取得
- 3. PDO - 無効なパラメータ番号
- 4. 無効なパラメータ番号
- 5. PHP無効なパラメータ番号:
- 6. パラメータでASP.NET MVCハッシュ記号が無視されました
- 7. ASP.NETコアID - 無効なトークン(Linux)
- 8. asp.netコア2 webapi無効な文字
- 9. NumberFormatExceptionを取得中:無効なdouble: ""
- 10. SQLSTATE [HY093]無効なパラメータ番号、すべてのパラメータが
- 11. エラー:SQLSTATE [hy093]:無効なパラメータ番号
- 12. バインドパラメータ値 - PDO無効なパラメータ番号
- 13. 無効なパラメータ番号教義
- 14. Doctrine setParameterと無効なパラメータ番号
- 15. PHP PDOException: "SQLSTATE [HY093]:無効なパラメータ番号"
- 16. 無効パラメータ番号:パラメータは、{パス}ここ
- 17. asp.net mvcで無効なドロップダウンの値を取得
- 18. 無効なパラメータの数、無
- 19. UIへのバインド中に無効なバインディングパスを取得する
- 20. Yii2 SQLSTATE [HY093]:無効なパラメータ番号:パラメータが全く私のModelSearchで
- 21. PHP '+'記号を取得
- 22. データベースの取得中に無効なFirebaseパスエラー
- 23. 取得エラー無効なユーザー
- 24. Elasticsearchのドットと大なり記号の違い
- 25. ユニコード記号のエイリアスを取得
- 26. ASP.NETコアで生成されたapp.configが無効
- 27. .NETのコアOpeniddict無効な要求
- 28. Mailgunの無効なパラメータ
- 29. prefetch_related()への無効なパラメータ
- 30. SQLSTATE [HY093]:無効なパラメータ番号:パラメータが定義されていません
確かに、あなたはhttp://github.com/aspnet/mvcにバグレポートを提出する必要があります。 DictionaryModelBinderProviderのコードを見てください。これは辞書にバインドするクラスです。 –
あなたは '。'ドット文字はURIにエスケープされていますか? https://msdn.microsoft.com/en-us/library/system.uri.escapeuristring(v=vs.110).aspx –
@MichalHaincドット記号は予約されていない文字なので、エンコードする必要はありません。 https://stackoverflow.com/questions/1455578/characters-allowed-in-get-parameter –