シンプルなブログ サイトのプロファイル タイプ ページを作成しようとしています。次のような 2 つの単純なモデル クラスがあります。
public class UserInfoModel
{
public string UserName { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public string ConfirmPassword { get; set; }
}
public class NewPost
{
public string PostTitle { get; set; }
public string PostStory { get; set; }
}
次のようにビューに渡すユーザーと投稿の共同モデル クラスを作成しました。
public class UserPostModel
{
public UserInfoModel User { get; set; }
public NewPost Post { get; set; }
}
ユーザーと投稿情報を取得するために私が書いたメソッドは次のようなものです:
public int GetUserID(string _UserName)
{
using (var context = new TourBlogEntities1())
{
var UserID = from s in context.UserInfoes
where s.UserName == _UserName
select s.UserID;
return UserID.Single();
}
}
public UserInfo GetUserDetails(int _UserID)
{
using (var context = new TourBlogEntities1())
{
var UserDetails = (from s in context.UserInfoes
where s.UserID == _UserID
select s).Single();
return UserDetails;
}
}
public Post GetUserPosts(int _UserID)
{
using (var context = new TourBlogEntities1())
{
var entity = (from s in context.Posts
where s.UserID == _UserID
select s).Single();
return entity;
}
}
そして最後に、次のようにコントローラー アクションからすべてのメソッドを呼び出しています。
[Authorize]
public ActionResult MyProfile()
{
var Business = new Business();
var UserID=Business.GetUserID(User.Identity.Name);
var UserEntity=Business.GetUserDetails(UserID);
var PostEntity=Business.GetUserPosts(UserID);
var model = new UserPostModel();
model.User.UserName = UserEntity.UserName; // problem showing here
model.User.Email = UserEntity.Email;
model.Post.PostTitle = PostEntity.PostTitle;
model.Post.PostStory = PostEntity.PostStory;
return View("MyProfile",model);
}
「オブジェクトがオブジェクト タイプまたは null オブジェクトを参照していません」のような実行時エラー。単一のモデルを渡している間、私は非常によく似た方法でうまくいきました。ここで何が間違っているのですか?