[解決済み】1つのビューに複数のモデルを表示する
2022-03-27 12:49:20
質問
1つのビューに2つのモデルを表示させたいのですが、どうすればいいですか?ページには
LoginViewModel
と
RegisterViewModel
.
など
public class LoginViewModel
{
public string Email { get; set; }
public string Password { get; set; }
}
public class RegisterViewModel
{
public string Name { get; set; }
public string Email { get; set; }
public string Password { get; set; }
}
この2つのViewModelを保持するViewModelをもう一つ作る必要があるのでしょうか?
public BigViewModel
{
public LoginViewModel LoginViewModel{get; set;}
public RegisterViewModel RegisterViewModel {get; set;}
}
バリデーション属性をビューに持ち込む必要があります。そのため、ViewModelsが必要です。
などの他の方法はないのでしょうか?
BigViewModel
):
@model ViewModel.RegisterViewModel
@using (Html.BeginForm("Login", "Auth", FormMethod.Post))
{
@Html.TextBoxFor(model => model.Name)
@Html.TextBoxFor(model => model.Email)
@Html.PasswordFor(model => model.Password)
}
@model ViewModel.LoginViewModel
@using (Html.BeginForm("Login", "Auth", FormMethod.Post))
{
@Html.TextBoxFor(model => model.Email)
@Html.PasswordFor(model => model.Password)
}
解決方法は?
いろいろな方法がありますが...
-
BigViewModelで を実行します。
@model BigViewModel @using(Html.BeginForm()) { @Html.EditorFor(o => o.LoginViewModel.Email) ... }
-
2つのビューを追加で作成することができます。
ログイン.cshtml
@model ViewModel.LoginViewModel @using (Html.BeginForm("Login", "Auth", FormMethod.Post)) { @Html.TextBoxFor(model => model.Email) @Html.PasswordFor(model => model.Password) }
と register.cshtml 同じこと
作成後、メインビューでレンダリングし、viewmodel/viewdataを渡す必要があります。
ということで、こんな感じでしょうか。
@{Html.RenderPartial("login", ViewBag.Login);} @{Html.RenderPartial("register", ViewBag.Register);}
または
@{Html.RenderPartial("login", Model.LoginViewModel)} @{Html.RenderPartial("register", Model.RegisterViewModel)}
-
ajaxを使うことで、Webサイトの各パーツがより独立したものになります。
-
iframes
しかし、おそらくこのようなことはないでしょう
関連
-
[解決済み】同じキーのアイテムがすでに追加されています。
-
[解決済み】Automapperにタイプマップの設定がない、またはマッピングがサポートされていない - エラー
-
[解決済み] プロジェクトのデフォルトのXMLネームスペースはMSBuild XMLネームスペースである必要があります。
-
[解決済み] asp.net MVCの@RenderSectionとは?
-
[解決済み] Razor View Page で名前空間をインポートするにはどうしたらいいですか?
-
[解決済み] razor viewエンジンでの@文字のエスケープ
-
[解決済み] ELMAHをASP.NET MVCの[HandleError]属性で動作させる方法は?
-
[解決済み】ASP.NET RazorのHTML.ActionLinkとUrl.Actionの比較
-
[解決済み】ViewModelのベストプラクティス
-
[解決済み] ASP.Net MVCでRequest on Controllerをモック化する方法とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Razor View Engine : 式ツリーには、動的な操作を含めることができません。
-
[解決済み] JsonResultが特殊文字(apostrophe)を \u0027 としてパースしています。
-
[解決済み] MVCで、文字列の結果を返すにはどうしたらいいですか?
-
[解決済み] MVCにおけるViewModelとは?
-
[解決済み】認証や認可に失敗した場合、AuthorizeAttributeがログインページにリダイレクトされるのはなぜですか?
-
[解決済み】ASP.NET MVC 3 コントローラから200 HTTPステータスコードを返す方法
-
[解決済み】"JSONリクエストが大きすぎてデシリアライズできませんでした "の表示について
-
[解決済み】Java Server Faces 2.0の主なデメリットは何ですか?
-
[解決済み】AutoMapper.CreateMapsをどこに配置するか?
-
[解決済み] エリア間のRedirectToAction?