AddEditModule
という名前のビューがモジュールの追加または編集に使用されているかどうかはわかりません。ワークフローは、divの表示/非表示を切り替えるナビゲーションボタンを使用した、一種のウィザードです。ASP.NET MVC3 - フォーム提出前にサマリー表示用の "更新された"モデル値を表示
私はと呼ばれるViewModelを持っています(これは10倍速いと言います)。ステップ1 & 2では、さまざまなEditorForを使用してフィールドを表示しています。ステップ3では、DisplayForを使用して、の現在の値のサマリー(ビューで更新されたもの、モデルで渡されたもの)を表示したいとします。
私のSilverlightでは、'Step1.FirstName'
TextBoxとViewModelプロパティの間に双方向バインディングを設定するだけです。私の要約では、単にViewModelプロパティにバインドされたTextBlockを表示することも、ElementBindingを使用してTextBlock.Text proeprtyをStep1.FirstName.Textプロパティにバインドすることもできます。
私はMVC3でそれを行うことはできませんが、私はこれを解決する方法がわかりません。私は、更新されたモジュールを投稿し、ModuleSummary
と呼ばれる新しい部分的なビューを返すだけのアヤックスについて考えましたが、ちょっとハッキリな感じでした。
紛失しているものがありますか?
[編集 - サンプルコード]
シナリオ: 私はもともと「マイ・モジュール」の称号を持つモデルを編集しています。当然のことながら、最初のロードでは、DisplayForのmodel.titleは "My Module"に設定されます。ステップ1で、タイトルを「My New Module Title」に変更するとします。私が知りたいのは、新しいタイトルを表示するためにボタンをクリックしてサマリーを表示したときにモデルを "リフレッシュ"する方法があるかどうかです。
@model CEAcademy.AddEditModuleModel
@using (Html.BeginForm("AddModule", "Module", FormMethod.Post, new { enctype = "multipart/form-data" })) {
@Html.ValidationSummary(false)
<fieldset>
<legend></legend>
<div id="step1">
<div class="editor-label">
@Html.LabelFor(model => model.title)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.title)
@Html.ValidationMessageFor(model => model.title)
</div>
</div>
<div id="summary">
<div class="display-label">
@Html.LabelFor(model => model.title)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.title)
</div>
</div>
<input type="button" id="showSummary" value="Step 2: View Summary" />
</fieldset>
}
多くのjQueryを使用するので、問題はありません。私はMVVM(silverlight)がクライアント側をRAMで操作していることは知っていますが、MVCのビューモデルは実際のオブジェクトとしてクライアントには決して見つからないので、更新する必要はありません。フィードバックのためのThx –