我正在使用 ASP.NET Core。我想將模型添加到 URL。該模型來自控制器到 ajax 呼叫的成功部分。查看代碼:
<form>
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
/// Some Input Tag
<div class="form-group">
<button type="button" onclick="FilterOrder()"> Filter </button>
</div>
</form>
<script>
function FilterOrder() {
var _url = '@Url.Action("Filter", "Controller")';
$.ajax({
url: _url,
type: "POST",
data: {
// Some data to send as a model
},
success: function (response) {
console.log("Success");
window.location.href = '@Url.Action("ShowList", "Controller")/' response; //has error 500
},
});
}
</script>
控制器代碼:
[HttpPost]
public IActionResult Filter(MyViewModel viewModel)
{
if (ModelState.IsValid)
{
var list= FilterLists(viewModel);
return Ok(list);
}
else
{
return View(viewModel);
}
}
[HttpPost]
public IActionResult ShowList(List<Model> list)
{
return View(list);
}
如何更改我的代碼以正常作業?
uj5u.com熱心網友回復:
window.location.href=xx
無法發送HttpPost
請求,因此不能使用此方法加載模態。一種方法是在success函式中發送另一個post ajax然后在頁面中顯示回傳的html,你可以參考這個簡單的demo:
<script>
function FilterOrder() {
var _url = '@Url.Action("Filter", "Controller")';
$.ajax({
url: _url,
type: "POST",
data: {
// Some data to send as a model
},
success: function (response) {
//send another ajax post request.
$.ajax({
url: /Controller/ShowList,
type: "POST",
data: xxxx,
success: function (res) {
//define a div to show the return html
document.getElementById("xxx").innerHTML = res,
//close the modal
$('#modalId').modal('hide')
},
});
}
});
}
</script>
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/530941.html
標籤:javascriptjQuery阿贾克斯asp.net 核心url.action