1

我有一个链接可以打开一个对话框给用户添加它的配置文件。

我希望数据在隐藏字段中

控制器调用此视图,但我不确定如何在控制器中填充我的模型,然后使用此视图中的模型来设置值属性。

这是我的控制器,如您所见,我正在使用 ViewBag,但我不想那样做。

public ActionResult EditUser()
    {
        try 
        {
            MembershipUser membershipUser = Membership.GetUser(Request.QueryString["username"]);
            ViewBag.user = membershipUser;

            return PartialView();

        }
        catch (Exception e)
        {   
            return Content("Error: " + e);
        }
    }

您能否帮助我了解如何构建我的模型并在我的视图中使用它?非常感谢...

4

3 回答 3

4

您所要做的就是将您创建的模型传递给视图/局部视图的调用。所以在你的例子中,而不是调用:

ViewBag.user = membershipUser

你应该使用:

return PartialView(membershipUser);

您只需要确保在您的视图中您@model在顶部有一个声明。它会是这样的:

@model MembershipUser;
<p>@Model.SomeField</p>
于 2012-11-22T23:49:15.137 回答
1

您可以简单地将 传递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

@model MembershipUser

// If you want to use a hidden field for a property
@Html.HiddenFor(m => m.SomeProperty)

// Uses the default editor template for the data type to allow user to edit the property
@Html.EditorFor(m => m.SomeProperty)

 // If you just want to show the property
@Model.SomeProperty
于 2012-11-22T23:56:45.333 回答
0

您必须添加模型名称 UserModel 并在那里定义用户对象

 public class UserModel
        {   
            public User UserInfo { get; set; }

        }

现在在 EditUser.cshtml 的 Partialview 顶部添加 @model UI.Web.App.Models.UserModel

之后也更改您的控制器代码-

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);
        }
    }

它将从控制器中删除视图包。希望这对您有所帮助,如果有任何问题,请告诉我。

于 2012-11-23T07:49:28.190 回答