Я отправляю массив json в Action MVC через JQuery или AJax, и Action обрабатывает запрос правильно.Однако, тогда MVC Action возвращает View, и мне нужно перенаправить на этот View (или заменить тело на него), но я не знаю как.
Итак, действие работает хорошо, за исключением, вероятно, возвращаемого значения:
[HttpPost]
public ActionResult CreateGet(List<string> itemIds)
{
List<TempItem> items = new List<TempItem>();
foreach (string item in itemIds)
{
items.Add(CallApi.Get(Request.Cookies["jwt"], "tempitems", item.ToString()).Content.ReadAsAsync<TempItem>().Result);
}
Invoice inv = new Invoice()
{
IsSupplement = items[0].IsSupplement,
Date = DateTime.Now,
Employee = CallApi.Get(Request.Cookies["jwt"], "employees/getprofile").Content.ReadAsAsync<Employee>().Result,
InvoiceItems = new List<InvoiceItem>()
};
foreach(TempItem item in items)
{
inv.InvoiceItems.Add(new InvoiceItem { Amount = item.Amount, ProductId = item.ProductId, Product = item.Product });
}
return View(inv);
}
И скрипта внутри бритвенной страницы, который собирает выбранные идентификаторы и публикует их в действии.После публикации больше ничего не происходит, даже предупреждение не вызывается, даже если страница просмотра существует и я не вижу сбоев в консоли.
function CreateInvoice(id) {
var selected = $('#' + id).DataTable().rows('.selected').data();
var items = [];
for (i = 0; i < selected.length; i++) {
items.push(selected[i][0]);
}
var postData = { itemIds: items };
$.ajax({
type: "POST",
url: "/Invoices/CreateGet",
data: postData,
success: function (data) {
alert("success");
window.location.href = data.url;
},
dataType: "json",
traditional: true
});
}
Обновление
Ну, я отказался от этой ерунды и продолжил GET-запрос, который передает массив идентификаторов в URL.Я думаю, что просто делаю что-то не так.