我如何使用 Ajax Jquery 和 return 视图?
How can i use Ajax Jquery and return View?
我有一个 Ajax Jquery 函数,它将值(位置和参数)发送到 IActionresult,后者在数据库中进行搜索,returns 一个具有正确对象数据的新视图模型的。
断点显示它进入 Actionresult 并正确传递参数,它运行 return 视图,但不 return 视图。它什么都不做。
Jquery Ajax 是否需要其他数据类型?
在浏览器控制台中,我可以看到 Post 方法已完成。
感谢您的帮助。
Index.cshtml
var LatPosition;
var LongPosition;
const successCallback = (position) => {
console.log(position);
LongPosition = position.coords.longitude;
LatPosition = position.coords.latitude;
console.log(LatPosition);
}
const errorCallback = (error) => {
console.error(error);
}
navigator.geolocation.getCurrentPosition(successCallback, errorCallback);
function sendAjaxRequest(element, urlToSend) {
var clickedButton = element;
$.ajax({
type: "POST",
url: urlToSend,
dataType: "json",
data: {
LongPosition: LongPosition,
LatPosition: LatPosition,
id: clickedButton.val(),
takeValue: $("#TabakName").val()
},
success: function (data) {
alert(data);
},
failure: function (errMsg) {
alert(errMsg);
}
});
}
$(document).ready(function () {
$('#button_1').click(function (e) {
e.preventDefault();
sendAjaxRequest($(this), '@Url.Action("Tabakvalidierung","Home")');
});
});
$(document).ready(function () {
$("#TabakName").autocomplete({
source: '@Url.Action("Search", "Tabaksuche")',
});
});
HomeController.cs
[HttpPost]
public IActionResult Tabakvalidierung(
string takeValue,
string LongPosition,
string LatPosition)
{
return View("Shopliste", shopDatens); //returning View with right object
}
将您的 ajax 更改为:
$.ajax(
{
url: urlToSend,
data: {
LongPosition: LongPosition,
LatPosition: LatPosition,
id: clickedButton.val(),
takeValue: $("#TabakName").val()
},
type: "POST",
success: function (result) {
$(div).html(result);
// div is Id of <div> where you have to show you partial view
},
error: function (xhr, exception) {
........
}
});
并将您的控制器更改为:
[HttpPost]
public IActionResult Tabakvalidierung(
string takeValue,
string LongPosition,
string LatPosition)
{
return PartialView("Shopliste", shopDatens);
// return partial View, if you use View it will be returned with the whole Layout
}
```
我有一个 Ajax Jquery 函数,它将值(位置和参数)发送到 IActionresult,后者在数据库中进行搜索,returns 一个具有正确对象数据的新视图模型的。
断点显示它进入 Actionresult 并正确传递参数,它运行 return 视图,但不 return 视图。它什么都不做。
Jquery Ajax 是否需要其他数据类型?
在浏览器控制台中,我可以看到 Post 方法已完成。
感谢您的帮助。
Index.cshtml
var LatPosition;
var LongPosition;
const successCallback = (position) => {
console.log(position);
LongPosition = position.coords.longitude;
LatPosition = position.coords.latitude;
console.log(LatPosition);
}
const errorCallback = (error) => {
console.error(error);
}
navigator.geolocation.getCurrentPosition(successCallback, errorCallback);
function sendAjaxRequest(element, urlToSend) {
var clickedButton = element;
$.ajax({
type: "POST",
url: urlToSend,
dataType: "json",
data: {
LongPosition: LongPosition,
LatPosition: LatPosition,
id: clickedButton.val(),
takeValue: $("#TabakName").val()
},
success: function (data) {
alert(data);
},
failure: function (errMsg) {
alert(errMsg);
}
});
}
$(document).ready(function () {
$('#button_1').click(function (e) {
e.preventDefault();
sendAjaxRequest($(this), '@Url.Action("Tabakvalidierung","Home")');
});
});
$(document).ready(function () {
$("#TabakName").autocomplete({
source: '@Url.Action("Search", "Tabaksuche")',
});
});
HomeController.cs
[HttpPost]
public IActionResult Tabakvalidierung(
string takeValue,
string LongPosition,
string LatPosition)
{
return View("Shopliste", shopDatens); //returning View with right object
}
将您的 ajax 更改为:
$.ajax(
{
url: urlToSend,
data: {
LongPosition: LongPosition,
LatPosition: LatPosition,
id: clickedButton.val(),
takeValue: $("#TabakName").val()
},
type: "POST",
success: function (result) {
$(div).html(result);
// div is Id of <div> where you have to show you partial view
},
error: function (xhr, exception) {
........
}
});
并将您的控制器更改为:
[HttpPost]
public IActionResult Tabakvalidierung(
string takeValue,
string LongPosition,
string LatPosition)
{
return PartialView("Shopliste", shopDatens);
// return partial View, if you use View it will be returned with the whole Layout
}
```