ユーザーは、IDEに付属のAspNetSqlProfileProviderを使用して、自分のサイトのどこかにプロファイル情報を記入させていただきました。@ Html.EditorForModel()を使用してフォームを構築するときに、特定のフィールドを自動入力する方法はありますか?
私は自分のプロフィールを編集するためのフォームが自動的に入力される「プロフィールの編集」ページにアクセスして、いつでも自分のプロフィールを編集することができます。私は現在のビューに私のコントローラから(例えば住所、市)は、ユーザーのプロファイルの個々の部分を送信するためにViewBagを使用してこれを実行します。
コントローラーを取得:
ViewBag.address = CustomProfile.GetUserProfile(User.Identity.Name).Address;
ViewBag.city = CustomProfile.GetUserProfile(User.Identity.Name).City;
ビュー:
<div class="editor-field">
@Html.TextBox("Address", (string)ViewBag.address)
</div>
<div class="editor-field">
@Html.TextBox("City", (string)ViewBag.city)
</div>
ポストコントローラー:
public ActionResult ChangeProfile(FormCollection favorites)
{
CustomProfile profile = CustomProfile.GetUserProfile();
profile.Address = favorites["Address"];
profile.City = favorites["City"];
profile.Save();
return RedirectToAction("Profile");
}
上記の編集プロファイルのために正常に動作し、私のユーザの視点からは非常にスムーズです(オンラインで質問/回答を読むことから、ViewModelを使用する必要があります。どのように移行するのかが正確ではない - 失敗しています)。
私のユーザーがウェブサイト(買い物をしていた)から「チェックアウト」に行くと、購入を可能にする最終的な情報を入力できる画面が表示されます。これを「注文ページ」と呼ぶことにします。これらの詳細には、名前、住所、クレジットカード情報などが含まれます。これらの情報の一部は、ウェブサイトのプロフィールページ内の情報と同じです。
フィールドの一部を空白のままにして、この注文ページ(名前、住所)の詳細の一部を自動入力できるようにしたい(クレジットカード - 訪問するたびにこれらの詳細を記入する必要がある注文ページ)。
注文ページの仕組みはMVC Store Tutorial describesです。
素晴らしいですし、あなたが(名前が必要な受注モデル内で指定された詳細を編集し、データ検証のものを可能にすることができます@Html.EditorForModel()
、アドレスが必要とされています注文ページが表示された場合には、使用してフォームを表示しますクレジットカードは数字でなければなりません、電子メールは適切にフォーマットされていますなど)、この注文ページ内の特定のフィールドにユーザーのプロフィールから詳細を入力する方法がわかりません。
プロファイルに含まれる情報だけを使用する新しいViewModelを構築しようとしましたが、私が望む最終結果を得られないために必要なものを明確に把握していません。
私はプロファイル情報としてオーダー・モデルだけを使用することを検討しましたが、両方で異なる情報を使用したいので十分ではありません。
プロファイル情報をオーダーモデルとして使用することを検討しましたが、実際に注文するために使用する情報とは別にプロファイル情報を柔軟に保存できるようにしたいと考えています。
「@ Html.EditorForModel()」を使用しているときに特定のフィールドを自動入力する方法を教えてください。
私の全体的な状況に関するその他の助けがあれば、私の流れを簡素化するアドバイスは非常にオープンです(私は自分が必要以上に困難になっていると感じています。コラボレーションは新鮮な空気の息吹のように感じる)。
クイック返信ありがとうございます。私はこの時間に眠りますので、朝に試してみる必要がありますが、ViewModelsのより豊かなビューを私に与えてくれたようです。 私の元の郵便内での理解の欠如に関して、私は2つのセッション(長い電話を受けた後の1つ)でこれを書いた。これはおそらく私の畑を通っており、私は改訂するかもしれない。 あなたが私に何を提供したかに焦点を当てる時間が増えたら、私は更新します。 – Ecnalyr
フィールドを正しく自動入力できました。ありがとうございました。しかし、AutoMapperを2つのモデル間でマッピングすることができませんでした(「例外」を投げました)。もう一度ありがとうございます。 – Ecnalyr