与aspnet mvc的ajax永远不会工作

时间:2015-10-27 17:17:07

标签: jquery ajax asp.net-mvc

我是网络开发的新手,我的ajax调用问题是动态加载页面。

这是我的JS:

$(function () {
$('.trEnfant').on('click', function (e) {
    var id = $(this).attr("id");

    $.ajax(
    {
        type:"Get",
        url: '@Url.Action("DossierEnfant", "Enfant")',
        data: {enfantId : id},
        success: function (result) 
        {
            $('#divDossierEnfant').html(result);
        },
        error: function (e)
        {
            alert('ca marche po...');
        }
    });
});
});

现在这是我的控制器:

public ActionResult DossierEnfant(string enfantId)
{
    DossierEnfantViewModel model = new DossierEnfantViewModel();
    model.Enfant = personneAppService.RecupererEnfant(new Guid(enfantId));
    return View(model);
}

最后我的cshtml:

<div>
<div class="row">
    <div class="panel panel-default">
        <div class="panel-heading">
            <h3 class="panel-title">Enfants</h3>
        </div>
        <div class="panel-body">
            <div class="row">
                <div class="col-lg-2">
                    <button class="btn btn-primary btn-block"><i class="fa fa-plus-circle"></i> @L("Ajouter")</button>
                </div>
                <div class="col-lg-10">
                    <table class="table table-bordered table-condensed table-hover">
                        @foreach (var item in Model.Enfants)
                        {
                            <tr id=@item.Id class="trEnfant">
                                <td class="col-md-6">@item.Nom</td>
                                <td class="col-md-5">@item.Prenom</td>
                                <td class="col-md-1 text-center">
                                    <a class="btn btn-warning btn-xs" role="button" href="#"><i class="fa fa-minus-circle"></i></a>
                                </td>
                            </tr>
                        }
                    </table>
                </div>
            </div>
        </div>
    </div>
</div>
<div id="divDossierEnfant" class="row">
</div>

我尝试使用html.action并且它工作正常,但我的ajax调用总是会产生错误......

这是我的观看文件夹: viewfolder

一个想法?

1 个答案:

答案 0 :(得分:0)

看起来你有一个单独的javascript文件,而你上面显示的javascript不在你的视图中。如果是这种情况,则不能使用Url.Action,因为它仅在剃刀视图中可用。

在这种情况下,您有两种选择,您可以将javascript移动到视图中,也可以在视图中添加隐藏的Url.Action值,并在您的javascript中调用该元素。

在您的观点中,添加:

<input type="hidden" id="url" value="@Url.Action("DossierEnfant", "Enfant")"

在你的ajax电话中:

$.ajax(
{
    type:"Get",
    url: $('#url').val(),
    data: {enfantId : id},
    success: function (result) 
    {
        $('#divDossierEnfant').html(result);
    },
    error: function (e)
    {
        alert('ca marche po...');
    }
});