У меня есть список пользователей, прошедших через модель. То, что я хочу сделать, - это кнопка для каждого пользователя, которая передает userId обратно на контроллер, чтобы я мог его сохранить. Подобно кнопке Like/Unlike.IEnumerable Ajax.Beginform to Controller имеет значение null
@model IEnumerable<FindaRoom.Models.FilterViewModel>
<h3>List of friends</h3>
<div class="row">
@using (Ajax.BeginForm("Add", "User", null, new AjaxOptions
{
HttpMethod = "POST",
OnSuccess = "SuccessMessage",
OnFailure = "FailMessage",
}, FormMethod.Post))
{
foreach (var user in Model)
{
<div class="col-md-3">
<div class="thumbnail">
<div>
@Html.EditorFor(modelitem => user.FbInfo.UserId)
</div>
<input type="submit" value="Match Me" />
</div>
</div>
}
}
</div>
Когда я отправляю обратно в user.FbInfo.UserId я получаю нулевое значение в моей переменной контроллера. Я не уверен, почему я получаю нулевую переменную, но я думаю, что она может что-то сделать с моей моделью?
Я просто использую пустой контроллер, и я вижу, что значение всегда равно нулю.
[HttpPost]
public ActionResult Add(FilterViewModel text)
{
return new HttpUnauthorizedResult();
//var user = db.Users.Find(text);
//var curUser = UserManager.FindById(User.Identity.GetUserId());
//curUser.Matches.Add(user);
//db.SaveChanges();
}
Моя модель такая же.
public class FilterViewModel
{
public FbInfo FbInfo { get; set; }
public Questions Questions { get; set; }
}
public class FbInfo
{
public FbInfo()
{
this.friendsList = new List<friends>();
this.mutualFriendsList = new List<mutualFriends>();
}
...
[Key]
[ForeignKey("UserId")]
public ApplicationUser User { get; set; }
...
}
public class Questions
{
[Key]
public int id { get; set; }
[ForeignKey("UserId")]
public ApplicationUser User { get; set; }
public string UserId { get; set; }
}
Если у кого есть ключ, который был бы полезен. Я немного застрял в этом и не могу понять, почему текстовое значение в контроллере равно null.
Да я думал, что Ajax.BeginForm не был правильный способ сделать это. Спасибо за быстрый ответ. –