Я хочу использовать Ajax в ASP.NET Core, но запрос не идет к контроллеру. Я использую VS 2017 и ASP.NET Core 2.1.
Вид:
<script src = "https://ajax.googleapis.com/ajax/libs/d3js/5.7.0/d3.min.js"></script>
<script>
$(document).ready(function () {
$('#buttonDemo1').click(function () {
$.ajax({
type: 'GET',
url: '/demo/demo1',
success: function (result) {
$('#result1').html(result);
}
});
});
})
</script>
<fieldset>
<legend>
<form>
<input type = "button" value = "demo1" id = "buttonDemo1" />
<br />
<span id = "result1">
</span>
</form>
</legend>
</fieldset>
Контроллер:
[Route("Demo1")]
public IActionResult Demo1()
{
return new JsonResult("DEmo1");
}
Запуск.cs:
app.UseStaticFiles();
app.UseMvcWithDefaultRoute();
Обновить: Я тестирую этот код и это работает в моем проекте:
<script>
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("demo").innerHTML = this.responseText;
}
};
xhttp.open("GET", "/Demo/demo1", true);
xhttp.send();
}
</script>
Спасибо за помощь
[Route("Demo")] public class DemoController : ControllerOk. Так что /Demo/Demo1 должно работать. Ваш View-File или html-файл находится в корне / приложения?





Вероятно, есть проблема с относительным URL-адресом: я бы сгенерировал URL-адрес с помощью помощника по действию URL-адреса из С#. По вашему мнению:
<script>
$(document).ready(function () {
var url = '@Url.Action("Demo1", "Demo")';
$('#buttonDemo1').click(function () {
$.ajax({
type: 'GET',
url: url,
success: function (result) {
$('#result1').html(result);
}
});
});
});
</script>
У вас есть атрибут RoutePrefix на контроллере? Как зовут ваши контроллеры?