传递链接参数MVC和JQuery Ajax

时间:2014-04-30 10:36:11

标签: javascript jquery asp.net-mvc-4

我试图将自己的参数的多个链接从View传递给控制器​​但是我将null值解析为控制器。以下是重要的代码片段,任何帮助将受到高度赞赏。

@foreach (var item in Model) {
<a href="#?id=@item.Id&un=@item.ReceiverUn" class="list-group-item active myajaxlink" >
<span class="label label-inverse pull-right">@item.InOn</span>
<h4 class="list-group-item-heading">@item.SenderUn @item.Subject<i class="fa fa-flag     text-primary"></i></h4>
<p class="margin-none">@Html.DisplayFor(modelItem => item.Body)</p>
</a>}

以下是使用Ajax的Javascript

<script type="text/javascript">
        $(document).ready(function(){
            $("#animatedgif").hide();
            $(".myajaxlink").click(function () {
                $.ajax({
                    url: "/InMail/check",
                type: "POST",
                data: { id: $('#id').val(), un: $('#un').val() }
            }).done(function () {

            }).complete(function (){
                $("#animatedgif").hide();
            }).success(function (dv) {
                $(".email-content").replaceWith(dv);
            });
        });
    });
    $(document).ajaxStart(function () {
        $("#animatedgif").show();
    }).ajaxSuccess(function () {
        $("#animatedgif").hide();
    });

    function myonbegin() {
        //show animated gif
        //alert("helloworld");
        $("#animatedgif").show();
    }
    function myonsuccess() {
        //disable animated gif
        $("#animatedgif").hide();
    }
    function myonfailure() {
        //disbale animated gif
        $("#animatedgif").hide();
    }
    function myoncomplete() {
        //disable animated gif
        $("#animatedgif").hide();
    }
</script>

1 个答案:

答案 0 :(得分:0)

您得到null,因为$('#id').val()$('#un').val()返回null。这发生because$('#id').val()构建搜索元素在页面上具有属性id =“id”和#un - id =“un”。
要实现您的需求,您只需添加以下修改:

<强>剃刀:

@foreach (var item in Model) {
   <a href="#" data-id="@item.Id" data-un="@item.ReceiverUn" class="list-group-item active myajaxlink" >
   <span class="label label-inverse pull-right">@item.InOn</span>
   <h4 class="list-group-item-heading">@item.SenderUn @item.Subject<i class="fa fa-flag     text-primary"></i></h4>
   <p class="margin-none">@Html.DisplayFor(modelItem => item.Body)</p>
   </a>
}

<强>使用Javascript:

$(".myajaxlink").click(function (e) {
   e.preventDefault();
   var link=$(this);
   $.ajax({
      url: "/InMail/check",
      type: "POST",
      data: { id: link.attr("data-id"), un: link.attr("data-un") }
   })
//handle .done, .fail and etc.
});