Я пытаюсь отправить данные из функции JavaScript в метод контроллера.Он работает нормально, когда у меня простая модель, но не работает, когда я пытаюсь опубликовать данные при работе с ViewModel, которая содержит несколько объектов.По-другому, у меня есть страница входа в систему, и я отправляю данные в метод входа в систему следующим образом:
Просмотр:
<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
, так есть ли способ заставить этот код работать?