Я изо всех сил пытаюсь передать коллекцию объекта и строку обратно из Ajax обратно в контроллер в MVC.
У меня есть следующее, которое отлично работает:
var ClientObject = [];
$.each($("#myClients option:selected"), function () {
ClientObject.push({ "Client_ID": $(this).attr("value"), "Client_Name": $(this).text().trim() });
});
var serviceURL = '/Filter/AppendClientFilter';
var datapost = JSON.stringify({ ClientUI: ClientObject });
$.ajax({
type: "POST",
url: serviceURL,
contentType: "application/json; charset=utf-8", // specify the content type
dataType: 'json',
data: datapost,
traditional: true,
success: function (data) {
if (data.status === 'OK') {
window.location.href = data.Url
}
else {
alert("The status cannot be updated at this time");
}
}
});
}
внутренний контроллер:
[HttpPost]
public ActionResult AppendClientFilter( List<ClientUI> ClientUI)
{
var userid = User.Identity.GetUserId();
foreach ( var item in ClientUI)
{
var recordexist = clientfilterrepo.GetAll(x => x.AspNet_ID == userid && x.Client_ID == item.Client_ID).FirstOrDefault();
if (recordexist == null)
{
clientfilterrepo.Add(new ClientFilter { AspNet_ID = userid, Client_ID = item.Client_ID, Client_Name = item.Client_Name });
}
}
var redirectUrl = new UrlHelper(Request.RequestContext).Action("ClientsFilter", "Filter", new { });
return Json(new { Url = redirectUrl, status = "OK" });
Модель ClientUI выглядит следующим образом
открытый класс ClientUI
{
public int Client_ID {get; задавать; }
открытая строка Client_Name {get; задавать; }
}
Я хочу добавить строку в пост ajax в качестве дополнительного параметра.
Как я могу это сделать?