麻烦使用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/

但似乎一点用都没有

麻烦使用ViewModel的模型属性在我的控制器

你的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之前