Asp.net mvc 3 MVC 3用户与从前端传下来的实体一起保存

Asp.net mvc 3 MVC 3用户与从前端传下来的实体一起保存,asp.net-mvc-3,model-binding,Asp.net Mvc 3,Model Binding,我有一个场景,创建与创建它们的登录用户(windows身份验证)关联的“机器”实体。只有在用户创建了至少一个机器实体后,才会在数据库中创建该用户 我在createmachine表单上使用模型绑定。机器模型有一个关联的用户实体,一个自定义实体,如下所示: public class User { public int UserId { get; set; } [DisplayName("User")] public string Username { get; set; }

我有一个场景,创建与创建它们的登录用户(windows身份验证)关联的“机器”实体。只有在用户创建了至少一个机器实体后,才会在数据库中创建该用户

我在createmachine表单上使用模型绑定。机器模型有一个关联的用户实体,一个自定义实体,如下所示:

public class User
{
    public int UserId { get; set; }

    [DisplayName("User")]
    public string Username { get; set; }

    public string Email { get; set; }

    public int SectorId { get; set; }
    public Sector Sector { get; set; }

    public List<Machine> Machines { get; set; }
}
但是我发现,当它返回到HttpPost创建处理程序时,模型中没有填充它


我想知道如何将用户名与模型一起传递?

首先,您的
HiddenFor()
方法调用的问题是,第二个参数应该是htmlAttributes的
对象。因此,您的方法调用不正确。():


首先,您的
HiddenFor()
方法调用遇到的问题是,第二个参数应该是htmlAttributes的
对象。因此,您的方法调用不正确。():


您如何看待正在使用的GetUser方法?一个来自视图的ajax调用来填充隐藏的用户输入?关于hidden的重载,您是对的。因为我使用的是,我想要一个带有单个lambda参数的。至于将用户传递给视图,我创建了一台机器,其中已经设置了用户,然后在加载时将其填充到create表单中。干杯您如何看待正在使用的GetUser方法?一个来自视图的ajax调用来填充隐藏的用户输入?关于hidden的重载,您是对的。因为我使用的是,我想要一个带有单个lambda参数的。至于将用户传递给视图,我创建了一台机器,其中已经设置了用户,然后在加载时将其填充到create表单中。干杯
@Html.HiddenFor(model => model.User.Username, new { User.Identity.Name })
public static MvcHtmlString HiddenFor<TModel, TProperty>(
    this HtmlHelper<TModel> htmlHelper,
    Expression<Func<TModel, TProperty>> expression,
    Object htmlAttributes
)
[HttpPost]
public ActionResult GetUser(User newUser)
{
    newUser.UserName = User.Identity.Name;

    // now do something with the passed in model
}