Asp.net mvc 3 MVC 3用户与从前端传下来的实体一起保存
我有一个场景,创建与创建它们的登录用户(windows身份验证)关联的“机器”实体。只有在用户创建了至少一个机器实体后,才会在数据库中创建该用户 我在createmachine表单上使用模型绑定。机器模型有一个关联的用户实体,一个自定义实体,如下所示: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; }
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
}