我正在尝试将 JavaScript 函数中的数据发送到控制器方法中。当我有一个简单的模型时它工作正常,但是当我在使用包含多个对象的 ViewModel 时尝试发布数据时它不起作用。
换句话说,我有一个登录页面,并且从我的角度来看,我将数据发布到登录方法,如下所示
View:
<input type="text" name="username" >
<input type="password" name="password">
<button type="submit" id="postIt">Log in</button>
JavaScript:
$("#postIt").click(function() {
postIt();
});
function postIt() {
var usr = $("#username").val();
var pwd = $("#password").val();
$.ajax({
type: "POST",
url: "Home/Login",
data: {
"Username": usr,
"Password": pwd
},
success: function(data) {
if (data.result) {
alert(data.message);
} else {
// unauthorized
alert(data.message);
}
}
});
}
这是我的控制器
[HttpPost]
public JsonResult Login(LoginModel data)
{
//some code
}
当我使用像这样的简单模型时LoginModel
包含用户名和密码,一切正常。但就我而言,我正在使用包含大量表和列表的 ViewModel,当我尝试像这样在控制器中传递 ViewModel 时
[HttpPost]
public JsonResult Login(ViewModel data)
{
//some code
}
我的 ViewModel 包含
public class myViewModel
{
public LoginModel LoginModal { get; set; }
public List<Users> UsersV { get; set; }
public List<Images> ImagesV { get; set; }
public List<Videos> VideosV { get; set; }
public List<Notes> NotesV { get; set; }
///...
}
我发现数据为空,但当我使用时却不是这样LoginModel
,那么有没有办法让这段代码工作呢?