Ajax在ASP.NET Core中似乎不起作用

时间:2019-03-15 07:23:13

标签: c# ajax asp.net-core

我想在ASP.NET Core中使用Ajax,但是请求不会发送到控制器。我使用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");
}

Startup.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>

感谢帮助

1 个答案:

答案 0 :(得分:0)

相对URL可能存在问题:在您看来,我将使用c#中的URL Action Helper生成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>