麻烦使用ViewModel的模型属性在我的控制器
本文关键字:属性 我的 控制器 模型 ViewModel 麻烦 | 更新日期: 2023-09-27 18:02:24
我创建了一个ViewModel,它有我的两个模型作为属性:
public class ViewModel
{
public Login loginVM;
public Person personVM;
}
Login和Person对象的属性由用户输入在视图中填充,但是当我将ViewModel发送回控制器并尝试使用Person/Login属性时,它说它们返回为null:
[HttpPost]
public ActionResult AddPerson(ViewModel vm)
{
DataBase da = new DataBase();
da.addLogin(vm.loginVM);
da.AddPerson(vm.personVM);
}
vm。loginVM和vm。由于某种原因,personVM为空。
我发现了一个博客帖子,有人似乎遇到了这个问题:https://garfbradazweb.wordpress.com/2012/03/08/mvc3-viewmodel-binding-to-controllerpost-methods/
但似乎一点用都没有
你的ajax调用应该是这样的:
var model = {loginVM:{YOUR OBJECT}, personVM:{YOUR OBJECT}};
$.post(url,{vm:model});
我找到了问题所在。在控制器方法中,我必须使用([Bind(Prefix = "personVM")] Person personModel, [Bind(Prefix = "loginVM")] Login loginModel)作为参数,就像我在开头帖子中发布的文章一样。然而,在我把绑定(前缀="Person")和绑定(前缀="Login")而不是personVM和loginVM之前