asp.netMvcでDatabaseFirstを使用しました。私は1つのビューに複数のテーブルを使用し、データベースに登録しています。ViewModelを2つのテーブルと2つのテーブルのビューデータに使用する方法
1.私は修正フィールドを持つユーザーテーブルを持っている:
CREATE TABLE [dbo].[Users](
[ID] [int] IDENTITY(1,1) NOT NULL,
[UserType] [int] NOT NULL,
[UserName] [nvarchar](50) NOT NULL,
[PassWord] [nvarchar](50) NOT NULL,
[PhoneNumber] [varchar](11) NOT NULL,
[Address] [nvarchar](max) NOT NULL,
[ChargeAccount] [bigint] NULL,
USERTYPEフィールドが含まのUserType表中のForeignKey( "管理者"、 "ユーザー"、...) であると私は別のテーブルを持っています、カスタマーのフィールドを持つ:FIELDTYPEは今(「テキストボックス」、...) を含めるテーブルがある
CREATE TABLE [dbo].[Fields](
[ID] [int] IDENTITY(1,1) NOT NULL,
[FieldName] [nvarchar](50) NOT NULL,
[FieldTypeID] [int] NOT NULL,
[DisplayFieldName] [nvarchar](50) NOT NULL,
、私はUserTypeDroのためのSelectedValueのを取得する問題を抱えているInsert.AlsoにしてRegisterFormを作成したいですpDown。
2.私はこのViewModelに書いた:
public class UserViewModel
{
protected UserTypeFeatch userTypeFeatch;
public UserViewModel()
{
userTypeFeatch = new UserTypeFeatch();
}
public virtual UserType UserType1 { get; set; }
public int UserTypeID { get; set; }
public string UserTypeName { get; set; }
public int SelectedUserType;
public IEnumerable<UserType> UserTypes
{
get
{
return userTypeFeatch.GetUserType();
}
set { }
}
public string UserName { get; set; }
public string PassWord { get; set; }
public string PhoneNumber { get; set; }
public string Address { get; set; }
}
をそして、私の問題は、VMにCustomeFieldsを設定し、選択された値を取得し、CustomeFieldsを登録する方法です。あなたは、あなたのドロップダウンに結合することができ、あなたのビューモデルに2つの以上のプロパティを必要とする
:ドロップダウンリストの値を取得するには
'UserType'はすでに' IEnumerable 'です。ビュー内で' new SelectList(...) 'を使って別のものを作成するのは無意味な余分なオーバーヘッドです。そのちょうど '@Html.DropDownListFor(m => m.UserTypeId、Model.UserType、新しい{..})' –