Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Jquery Post未到达MVC控制器_C#_Asp.net Mvc_Jquery_Asp.net Mvc 4 - Fatal编程技术网

C# Jquery Post未到达MVC控制器

C# Jquery Post未到达MVC控制器,c#,asp.net-mvc,jquery,asp.net-mvc-4,C#,Asp.net Mvc,Jquery,Asp.net Mvc 4,抱歉,如果我认为这无关紧要,我已经读了很多其他的评论,但仍然看不出有什么错。我已经做了一些教程,他们似乎工作正常,所以我真的错过了一些简单的东西 我有一个基本的“remove”链接,我想通过JQuery发回控制器,从数据库中删除一个项目,然后更新视图 我的视图/Javascript: <script type="text/javascript"> $(function () { $(".RemoveLink").click(function () { var

抱歉,如果我认为这无关紧要,我已经读了很多其他的评论,但仍然看不出有什么错。我已经做了一些教程,他们似乎工作正常,所以我真的错过了一些简单的东西

我有一个基本的“remove”链接,我想通过JQuery发回控制器,从数据库中删除一个项目,然后更新视图

我的视图/Javascript:

<script type="text/javascript">
$(function () {
    $(".RemoveLink").click(function () {
        var id = $(this).attr("data-id");

        if (id != '') {
            $.post("@Url.Content("~/Agent/Remove")", { "id": id }, function (data) { alert('Here i am'); });
        }
    });
});
任何帮助都会很好。

使用
@Url.Action(“删除”、“代理”)

@Url.Content(“…”)
用于定位网站的任何静态内容

下面的代码运行良好

   @foreach (var item in Model.Object) {
    <tr id="row-@item.ID">
        <td>
            @Html.DisplayFor(modelItem => item.Description)
        </td>
        <td>
            <input type="button" class="RemoveLink"  id="@item.ID" Value="Remove" />

        </td>
    </tr>
        }

<script type="text/javascript" language="javascript">
    $(document).ready(function () {
        $('.RemoveLink').live("click", function () {
            Remove($(this));
        });
    });

    function Remove(_this) {

        var Id= $(_this).attr('id');

        $.ajax({
            type: 'POST',
            url: '@Url.Action("Remove", "Agent")',
            data: "{id: '" + Id + "'}",
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (data) {
                //do something here......
            },
            error: function () {

            }
        });
    }
</script>
@foreach(Model.Object中的变量项){
@DisplayFor(modelItem=>item.Description)
}
$(文档).ready(函数(){
$('.RemoveLink').live(“单击”,函数(){
删除($(此));
});
});
函数删除(_this){
var Id=$(_this).attr('Id');
$.ajax({
键入:“POST”,
url:'@url.Action(“删除”、“代理”),
数据:“{id:'”+id+“}”,
contentType:'application/json;charset=utf-8',
数据类型:“json”,
成功:功能(数据){
//在这里做点什么。。。。。。
},
错误:函数(){
}
});
}

您是否使用控制台工具查看了请求/响应周期?确定这是正确的URL?我会使用
@Url.Action(“删除”、“代理”)
另外,检查您的javascript控制台,确保您的javascriptI没有错误。我已经测试了您的代码,它工作正常。我在控制器操作中添加了一个断点,它被正确的值击中。请检查生成的HTML并确保
数据id
具有正确的值,如果有效的
int
未作为
id
传递,则不会执行该操作hit@nemesv:实际上,操作名称是第一个参数,然后是控制器名称。我看到你的编辑;-)接近。。。太多的语音标记(或者太少,取决于你如何看待它)。另外,您确定这就是OP问题的原因吗?我之所以发布评论是有原因的,而
Url.Content()
绝对不是用来生成操作Url的,在这种情况下,它仍然可能生成正确的Url,所以这可能无法解决问题。@BennorMcCarthy:这是我关心的问题,虽然这个答案肯定是错误的,但我目前还不能证实这一点,我刚刚测试了两种方法,它们都产生了相同的URL字符串。你做了什么?顺便说一句,操作代码已经运行良好,我已经测试过了,还不够好。操作代码已经工作了,因此您没有识别问题,因为还没有人给出有效的答案。事实上,他的代码是有效的,因为我对它进行了测试。因此,发布一个不同的方式来做同样的事情是没有帮助的,因为他的问题很可能是由于其他原因。
    [HttpPost]
    public ActionResult Remove(int id)
    {
        return Json(new { Data = "true" });
    }
   @foreach (var item in Model.Object) {
    <tr id="row-@item.ID">
        <td>
            @Html.DisplayFor(modelItem => item.Description)
        </td>
        <td>
            <input type="button" class="RemoveLink"  id="@item.ID" Value="Remove" />

        </td>
    </tr>
        }

<script type="text/javascript" language="javascript">
    $(document).ready(function () {
        $('.RemoveLink').live("click", function () {
            Remove($(this));
        });
    });

    function Remove(_this) {

        var Id= $(_this).attr('id');

        $.ajax({
            type: 'POST',
            url: '@Url.Action("Remove", "Agent")',
            data: "{id: '" + Id + "'}",
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (data) {
                //do something here......
            },
            error: function () {

            }
        });
    }
</script>