单击按钮即可调用Controller Action

时间:2019-09-10 08:03:20

标签: asp.net-web-api asp.net-mvc-5

如何使用JavaScript或JQuery或AJAX在按钮单击中调用控制器动作。我有一个控制器,我想创建一个函数来在按下按钮时调用控制器方法

[ResponseType(typeof(AKONTA))]
        public IHttpActionResult GetAKONTA(string id)
        {
            AKONTA aKONTA = db.AKONTAS.Find(id);
            if (aKONTA == null)
            {
                return BadRequest("Ne postoji A_KONTO pod tim rednim brojem");
            }

            return Ok(aKONTA);
        }  

我创建了这样的函数,但是不起作用,总是显示此消息

alert("Ne postoji AKONTO pod tim rednim brojem");


@section scripts{
    <script>
        function aKontoSubmit() {
            $.ajax({
                type: "GET",
                URL: "/api/Akontas/" + $('#AkontasId').val(),
                // data: $('form').serialize(),
                dataType: "application/xml",
                success: function (result) {
                    alert("Odlicno")
                },
                error: function () {
                    alert("Ne postoji AKONTO pod tim rednim brojem");
                }
            });
        }
    </script>
}

更新

<br /><br />
<form>
    <div class="form-group">
        <label>A_KONTO</label>
        @*<input type="text" class="form-control" aria-describedby="AKONTO BROJ" placeholder="Unesite broj AKONOTO">*@
        <input type="text" class="form-control" aria-describedby="AKONTO BROJ" placeholder="Unesite broj AKONOTO" id='AkontasId'>
    </div>

    <div class="form-group">
        <a asp-action="Index" class="btn btn-primary" id="aKonto" onClick='aKontoSubmit()'>Provjeri</a>
    </div>
</form>


@section scripts{
    <script>
        function aKontoSubmit() {
            $("#aKonto").click(function () {
                $.ajax({
                    type: "GET",
                    URL: "/api/Akontas/",
                    data: { id: $('#AkontasId').val() },
                    dataType: "json",
                    success: function (result) {
                        alert("Odlicno")
                    },
                    error: function () {
                        alert(Error);
                       // alert("Ne postoji AKONTO pod tim rednim brojem");
                    }
                });
            });
        }
    </script>
}

2 个答案:

答案 0 :(得分:1)

已编辑

class TempTracker:
    def insert(self, temp):
        t = []
        self.temp = temp
        t.append(self.temp)
        return t

    def get_max(t):
        for i in t:
            print(i)

    def get_min():
        pass

    def get_mean():
        pass


a = TempTracker()
b = TempTracker()
temp = [1, 2]
a.insert(temp)
b.insert(3)
a.get_max()

答案 1 :(得分:1)

经过几个小时的调试和搜索,我发现我忘了放

window.location.href = "http://localhost:57285/api/Akontas/" + $('#AkontasId').val();

如果数据库中存在项目,这是应该重定向的位置

URL调用也需要修改

URL: "/api/Akontas/GetAKONTA",


 function aKontoSubmit() {

        $.ajax({          
            type: "GET",            
            URL: "/api/Akontas/GetAKONTA",
            data: { id: $('#AkontasId').val() },
            contentType: "data/xml; charset=utf-8",  
            success: function (result) {
                window.location.href = "http://localhost:57285/api/Akontas/" + $('#AkontasId').val();
            },
            error: function () {
                alert("Ne postoji AKONTO pod tim rednim brojem");
            }
        });
    }