2015-10-09 68 views
0

我有以下代碼...傳遞 「數據 - 」 到控制器

HTML:

<button type="button" class="btn btn-primary" id="filterData" 
    data-filterString="@Model.LastName">Filter</button> 

打字稿:

$("button[id='filterData']").click(() => { 
     var dataList = []; 
     var filter = $(this).data("filterString"); 
     $("input[class='personRecord']").each(function() { 
     dataList.push($(this).val()); 
     }); 
     var parameters = JSON.stringify({ "filterString": filter, "dataList":paymentList }); 
     $.ajax({ 
     url: "/Employee/FilterName", 
     data: parameters, 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     success: function() { 
      alert("Success"); 
     } 
     }); 
    }); 

控制器:

[HttpPost] 
public void SendAll(string filterString, List<string> dataList) { 
    ... 
} 

然而,變量filter不斷返回「未定義」。在這種情況下,你如何傳遞自定義數據項,data-filterString

+0

檢查HTML您的生成 - 它是'數據filterString = 「... 」'或'數據filterstring =「 ...」'(全部小寫)? –

回答

1

在你的jQuery中,只能使用data方法的小寫值,即使你的屬性是大寫/混合大小寫。所以,你應該寫:

var filter = $(this).data("filterstring"); 

如果你在你的鑰匙使用大小寫混合,jQuery的轉換,爲虛線變量,所以當你搜索filterString,你的屬性應該叫data-filter-string

$(function() { 
 
    console.log($('#test').data('filterstring')); 
 
    console.log($('#test').data('filterString')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 
<div id="test" data-filterString="value1" data-filter-string="value2"></div>