このトピックが少し複雑であることは承知しています。できるだけシンプルに保ち、必要に応じて詳細を追加します。
私は ASP.NET MVC 4 Web サイトを持っています。これはデータ アクセスに Web API を使用し、フロント エンドで KnockOutJS を使用して、AJAX スタイルに沿って動作を維持しています。
私は Web API を使用しているため、MVC の従来のスキャフォールディングを使用する代わりに、モデルごとにすべての CRUD 操作を実行できる単一の管理ページを作成しました。一般的に言えば、これは非常にうまく機能します。モーダル ポップアップを使用して、新しいオブジェクトを作成するための情報を入力します。更新はグリッド内で「インライン」で行われます。
モーダル ダイアログに新しい情報を入力すると、フォームの検証が期待どおりに機能します。たとえば、データが [Required()] とマークされているときにフィールドを空白のままにすると、送信時にエラーが表示されます。
ただし、データのインライン編集は検証されていません。この場合、実際には 2 つのフィールドを使用します。< span > タグを使用してデータを表示します。「編集」リンクをクリックすると、スパンが非表示になり、代わりに < input > タグが表示されます。これは問題と関係があるかもしれません。(可視性は KnockOutJS によって制御されます。Editable() はブール値です)
<div class="span3">
<span data-bind="text: Name, visible: !Editable()"></span>
@Html.TextBoxFor(model => model.Name, new { data_bind = "value: Name, visible: Editable()", @class="fullwidth"})
@Html.ValidationMessageFor(model => model.Name)
</div>
関連するデータ (model.Name) は KO オブザーバブルであることに注意してください。これも問題があるかどうかはわかりません。
これらのテクノロジーをうまく連携させた経験のある人はいますか?