Asp.net 控制器中的建模
我有一个链接,可以打开一个对话框给用户添加个人资料 我希望数据在隐藏字段中 控制器调用此视图,但我不确定如何在控制器中填充我的模型,然后使用此视图中的模型设置值属性 这是我的控制器,正如你所看到的,我正在使用ViewBag,我不想这样Asp.net 控制器中的建模,asp.net,asp.net-mvc,build,model,asp.net-mvc-4,Asp.net,Asp.net Mvc,Build,Model,Asp.net Mvc 4,我有一个链接,可以打开一个对话框给用户添加个人资料 我希望数据在隐藏字段中 控制器调用此视图,但我不确定如何在控制器中填充我的模型,然后使用此视图中的模型设置值属性 这是我的控制器,正如你所看到的,我正在使用ViewBag,我不想这样 public ActionResult EditUser() { try { MembershipUser membershipUser = Membership.GetUser(Request.Q
public ActionResult EditUser()
{
try
{
MembershipUser membershipUser = Membership.GetUser(Request.QueryString["username"]);
ViewBag.user = membershipUser;
return PartialView();
}
catch (Exception e)
{
return Content("Error: " + e);
}
}
你能帮助我理解如何构建我的模型并在我的视图中使用它吗?
非常感谢…您所要做的就是将您创建的模型传递到视图/局部视图的调用中。因此,在您的实例中,不要调用:
ViewBag.user = membershipUser
你应使用:
return PartialView(membershipUser);
您只需要确保在视图的顶部有一个@model声明。大概是这样的:
@model MembershipUser;
<p>@Model.SomeField</p>
您所要做的就是将创建的模型传递到视图/局部视图的调用中。因此,在您的实例中,不要调用:
ViewBag.user = membershipUser
你应使用:
return PartialView(membershipUser);
您只需要确保在视图的顶部有一个@model声明。大概是这样的:
@model MembershipUser;
<p>@Model.SomeField</p>
您只需将MembershipUser传递给视图并将其用作模型。控制器操作方法将检索用户并将其返回到视图:
MembershipUser membershipUser = Membership.GetUser(Request.QueryString["username"]);
return PartialView("PartialViewName", membershipUser); // Specify the partial view name and pass the membership user as a model
然后在视图中添加@model指令并访问MembershipUser的属性:
您只需将MembershipUser传递给视图并将其用作模型。控制器操作方法将检索用户并将其返回到视图:
MembershipUser membershipUser = Membership.GetUser(Request.QueryString["username"]);
return PartialView("PartialViewName", membershipUser); // Specify the partial view name and pass the membership user as a model
然后在视图中添加@model指令并访问MembershipUser的属性:
您必须添加一个模型名UserModel并在那里定义用户对象
public class UserModel
{
public User UserInfo { get; set; }
}
现在将@model UI.Web.App.Models.UserModel添加到EditUser.cshtml中Partialview的顶部
在此之后,还要更改控制器代码-
public ActionResult EditUser()
{
try
{
MembershipUser membershipUser = Membership.GetUser(Request.QueryString["username"]);
UserModel usermodel=new UserModel();
usermodel.UserInfo = membershipUser;
return PartialView(usermodel);
}
catch (Exception e)
{
return Content("Error: " + e);
}
}
它将从控制器中移除视图包。
希望这能对您有所帮助,如果有任何问题,请告诉我。您必须在那里添加一个模型名UserModel并定义用户对象
public class UserModel
{
public User UserInfo { get; set; }
}
现在将@model UI.Web.App.Models.UserModel添加到EditUser.cshtml中Partialview的顶部
在此之后,还要更改控制器代码-
public ActionResult EditUser()
{
try
{
MembershipUser membershipUser = Membership.GetUser(Request.QueryString["username"]);
UserModel usermodel=new UserModel();
usermodel.UserInfo = membershipUser;
return PartialView(usermodel);
}
catch (Exception e)
{
return Content("Error: " + e);
}
}
它将从控制器中移除视图包。
希望这将帮助你,如果有任何问题,请让我知道