获取并比较jQuery中的值

时间:2015-04-12 18:23:05

标签: c# jquery ajax asp.net-mvc-4 partial-views

我是ASP.NET和jQuery的新手。在MVC 4中遇到查询问题。我想将jquery先前生成的值(Id)与数据库表进行比较。应显示与上一个函数中查询的值(Id)匹配的所有行。所以

这是Controller中用于获取我想要比较的行的函数:

 public PartialViewResult NumberByAnimal(int? animalId) {

          object numbers = null;
          numbers = db.Inhabitants.Find(animalId);

          return PartialView("Number", numbers);
    }

这是上一个过程的一部分,它包含通过AJAX搜索的值(animalId)我要与数据库中的'Inhabitant'表进行比较:

   $('#search').keyup(function () {
var searchField = $('#search').val();
var myExp = new RegExp(searchField, 'i');

$.getJSON("/Animal/GetAnimals", function (data) {
    var output = '<ul class="searchresult">';

        $.each(data, function (key, val) {
            if (val.name.search(myExp) != -1) {
                output += '<li class="listobject">';
                output += '<div class="list">' + val.name + '</div>';
                output += '<p class="listelement">Order: ' + val.order + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Family: ' + val.family + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Genus: ' + val.genus + '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Species: ' + val.species + '</p>';
                output += '<div id="add" class="hidden">';
                output += '<div class="ctry-view">';
                output += '<p class="listelement">Origin: ' + val.origin + '</p>';
                output += '<p class="listelement">Continent: ' + val.continent + '</p>';
                output += '</div>';
                output += '<img class="img-view" alt="Picture normally displayed" src="data:image/jpeg;base64," + val.image />';
                output += '<p class="desc">' + val.shortDescription + '</p>';
                output += '</div>';
                output += '<hr>';
                output += '</li>';

                         }

然后我想将id传递给函数并创建Partial视图,但$(this).val()返回0.我不知道如何获取被点击对象的animalId。

 $(document).on("click", "li.listobject", function () {
$("ul.searchresult").remove();
$('#map-canvas').removeAttr('class');
var currentId = $(this).val();

alert(currentId);
$('#numberPlaceholder').load("/Inhabitant/NumberByAnimal", { animalId:currentId });

部分视图:

@model IEnumerable<TheMenagerieNetwork.Models.Inhabitant>

 <ul>
  @foreach (var item in Model) { 
   <li>
     @Html.DisplayFor(modelItem => item.number)
   </li>
  }
 </ul>

它会抛出一个Null引用异常! 谢谢你的帮助!

0 个答案:

没有答案