0

これを行うことができるかどうか、またどのように行うかはわかりませんが、コントローラーには次のものがあります。

[HttpGet]
public ActionResult Detail(int userId)
{
  UserDetailViewModel user = new UserDetailViewModel();
  user.UserId = userId;
  user.Email = Email;
  return View(user);
}

私の UserDetailViewModel:

  namespace Zinc.Web.Areas.Admin.ViewModels.User

  public class UserDetailViewModel
  {
    [LocalizedRequired]
    [DisplayName("UserId")]
    public int UserId { get; set; }

    [LocalizedRequired]
    [DisplayName("Email")]
    public string Email { get; set; }
  } 

私はユーザーのIDを持っていますが、電子メール、名前、姓などの残りの詳細を取得する必要があります..今のところ電子メールを書き留めました..それらの詳細を持つ別のモデルをビューに渡す必要がありますか?

4

1 に答える 1

1

これらすべてのプロパティをビュー モデル (つまり ) に追加する必要がありますUserDetailViewModel

id次に、値を取得し、 をパラメーターとして使用してプロパティに設定できるメソッドを作成します。

[HttpGet]
public ActionResult Detail(int userId)
{
   UserDetailModel user = GetUser(userid);
   UserDetailViewModel model = new UserDetailViewModel;
   model.UserId = user.UserId;
   model.Email = user.Email;
   model.Name = user.Name;
   //etc...
   return View(model);
}

の例GetUser:

public UserDetailModel GetUser(userId){
   //Do some data access here
   UserDetailModel user = new UserDetailModel;
   user.UserId = //Set from data accessed
   //etc..
   return user;
}

これをビュー モデルではなく一般的なモデルに適用する利点は、同じデータのデータ アクセス用に複数のメソッドを作成する必要なく、他のビュー モデルに適用できることです。

于 2012-10-18T11:05:24.380 に答える