it技術:web開発:blzaor
                差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| it技術:web開発:blzaor [2024/03/20 14:42] – [ボタンクリックイベントでSUBMIT処理] yajuadmin | it技術:web開発:blzaor [2024/12/24 00:42] (現在) – [Web APIを追加] yajuadmin | ||
|---|---|---|---|
| 行 358: | 行 358: | ||
| public string[]? Films { get; set; } | public string[]? Films { get; set; } | ||
| </ | </ | ||
| + | |||
| + | === 通常クラス === | ||
| + | Blazorコンポーネント内では Navigation.GetUriWithQueryParametersを使用できるが、Blazorコンポーネント外の一般クラスでは、HttpUtility.ParseQueryString を使用する。 | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | === Uriからパラメータ取得 === | ||
| + | < | ||
| + | NameValueCollection query = HttpUtility.ParseQueryString(new Uri(Navigation.Uri).Query); | ||
| + | string key = query[" | ||
| + | </ | ||
| + | |||
| + | [[https:// | ||
| === 参照 === | === 参照 === | ||
| 行 422: | 行 435: | ||
| - Controllerフォルダを作成 | - Controllerフォルダを作成 | ||
| - | - 右クリックメニューから[追加]の[コントローラー]をクリックする | + | - 右クリックメニューから[新しい項目の追加]をクリックする | 
|   - 共通のAPIにある「読み取り/ |   - 共通のAPIにある「読み取り/ | ||
| - ValuesController.cs を追加する | - ValuesController.cs を追加する | ||
| 行 509: | 行 522: | ||
| [[https:// | [[https:// | ||
| + | ==== カスタムコンポーネントで親コンポーネントの処理を実行 ==== | ||
| + | カスタムコンポーネントのOnClickCallbackパラメータに親側の実行処理を記載する。\\ | ||
| + | カスタムコンポーネント側のボタンをクリックすると親側の処理が実行される。 | ||
| + | <code csharp> | ||
| + | // イベント処理をラムダ式で書いた場合 | ||
| + | < | ||
| + | |||
| + | @code { | ||
| + | [Parameter] | ||
| + | public EventCallback OnClickCallback { get; set; } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ==== 子コンポーネントのメソッドを実行 ==== | ||
| + | 親コンポーネント内で子コンポーネントを@refを用いて参照することでメソッドを呼ぶことが出来る。 | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ==== リトライ回数を増やす ==== | ||
| + | リトライ回数はデフォルトで8回となっている。 | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ==== awaitのメソッドを追加すると動作しなくなる ==== | ||
| + | Submitの先頭にawait.Task.Delay メソッドを実行すると、エラー用のメッセージモーダルが表示されなくなる現象があった。\\ | ||
| + | async void を async Task に変更することで解決した。 | ||
| + | |||
| + | < | ||
| + | async void Submit() | ||
| + | ↓ | ||
| + | async Task Submit() | ||
| + | </ | ||
| + | |||
| + | [[https:// | ||
| ==== Javascriptとの連携 ==== | ==== Javascriptとの連携 ==== | ||
|   * [[https:// |   * [[https:// | ||
| 行 515: | 行 564: | ||
|   * [[https:// |   * [[https:// | ||
| - | ==== BlazorとjQueryの連携 ==== | + | ==== BlazorとjQueryコンポーネント等との連携 ==== | 
| + | jQueryコンポーネント または jQueryを使用しないJavaScriptコンポーネントをBlazorと連携する場合の注意点 | ||
|   * [[https:// |   * [[https:// | ||
|   * [[https:// |   * [[https:// | ||
| 行 565: | 行 616: | ||
| </ | </ | ||
| + | === nullを変換できない場合 === | ||
| + | Datetimepicker(tempusdominus)のv6を使用した際に、範囲最小値(minDate)と範囲最大値(maxDate)の指定でminDate側にnullをセットして実行した段階で、nullに変換できないとしてエラーとなった。 | ||
| + | |||
| + | null 値のプロパティを無視する属性を付けることで回避できた。\\ | ||
| + | [[https:// | ||
| + | |||
| + | < | ||
| + | private class Restrictions | ||
| + | { | ||
| + | [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] | ||
| + | public DateTime? minDate { get; set; } | ||
| + | [JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)] | ||
| + | public DateTime? maxDate { get; set; } | ||
| + | } | ||
| + | </ | ||
| 行 615: | 行 681: | ||
| } | } | ||
| </ | </ | ||
| + | |||
| + | ==== ブラウザのキャッシュ回避 ==== | ||
| + | Blazorには、ASP.NET Coreにあった「asp-append-version=" | ||
| + | [[https:// | ||
| + | |||
| + | よって、ファイルバージョンを付けて回避している。 | ||
| + | |||
| + | <code csharp App.razor> | ||
| + | <link rel=" | ||
| + | |||
| + | @code { | ||
| + |     private string Version = " | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== WebSocketプロトコルを使用する ==== | ||
| + |   | ||
| + | |||
| + | >Blazor Server は、WebSocket では通信できない環境であっても、Long Polling 方式に動作を切り替えて、動作継続します。 | ||
| + | > | ||
| + | |||
| + | <wrap em> | ||
| + | |||
| + | ==== CA1416警告 Windowsでのみサポートされています ==== | ||
| + | 「警告 CA1416 この呼び出しサイトはすべてのプラットフォームで到達可能です。' | ||
| + | |||
| + | FreeSprire.pdf の印刷機能でカスタムサイズをセットした部分で警告の緑色の波線が出ました。\\ | ||
| + | 使用するメソッドの上に「[SupportedOSPlatform(" | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | ==== PrivateObjectの代替 ==== | ||
| + | 単体テストでモジュールのPrivateメソッドにアクセスする「PrivateObject」が、.NET Coreでは使用できなくなった。\\ | ||
| + | [[https:// | ||
| + | |||
| + | ==== 警告「via WebSockets, using the Long Polling fallback transport」 ==== | ||
| + | via WebSockets, using the Long Polling fallback transport. This may be due to a VPN or proxy blocking the connection. To troubleshoot this, visit | ||
| + | |||
| + | IISでWebSocketを有効にしていないとLong pollingが使用される。 | ||
| + | |||
| + | Windows Serverのサーバーマネージャーのメニューの「管理」にある「役割と機能の追加」にて、Webサーバー(IIS) | ||
| + | -> | ||
| + | |||
| + | WebSocket プロトコルにチェックを追加する。 | ||
| ===== 参照 ===== | ===== 参照 ===== | ||
|   * [[https:// |   * [[https:// | ||
it技術/web開発/blzaor.1710913362.txt.gz · 最終更新: 2024/03/20 14:42 by yajuadmin
                
                