2014-04-30 57 views
0

我想通過多個鏈接與自己的參數從控制器從視圖但我得到空值解析到控制器。下面是顯着的代碼片段,任何幫助將不勝感激。傳遞鏈接參數MVC和JQuery Ajax

@foreach (var item in Model) { 
<a href="#[email protected]&[email protected]" 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和Ajax的

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

回答

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. 
}); 
+0

非常感謝上實施,我得到的鏈接。 attr不是一種功能,你可以進一步幫助嗎? – Diin

+0

雙引號是編輯時解決方案的罪魁禍首。我已經編輯過,以便我可以接受你的答案。我還發現了其他方法,但感謝您的及時幫助。 – Diin