2015-02-16 1 views
0

В событии нажатия кнопки поиска я отправляю текст поиска в качестве параметра в метод на контроллере. Этот метод вернет обратно объект инструмента, в котором есть свойства, такие как Name и Price. Я вижу, что метод возвращает объект инструмента в javascript, и я вижу, что объект имеет тип инструмента в javascript, но я не могу получить свойства из этого объекта. Как я могу сделать что-то вроде этого: document.getElementById('QSPrice').value = data.PriceНевозможно отобразить возвращаемые значения свойств из контроллера MVC с помощью .ajax-вызова

VB.net

Function TestQuickSearch(ByVal searchItem As String) As Tool 

    Dim QSVM As Model.SearchViewModel = New Model.SearchViewModel() 
    Dim returnedItem = QSVM.GetToolByItemNum(searchItem) 

    Return returnedItem 
End Function 

JavaScript

$("#btnQuickSearch").live("click", function (e) { 
     var searchText = document.getElementById('txtQuickSearch').value 

     if(searchText.length !== 0) { 
      var Url = '@Url.Content("~/Route/QuickSearch")'; 

      $.ajax({ 
       url: Url, 
       async: 'false', 
       type: 'GET', 
       data: {searchItem: searchText}, 
       success: function (data) {       

        alert(data.Price); 

       }, 
       error: function (error) { 
        //Show Message 
       } 
      }); 
     } else { 
      //Show Message 

     } 
    }); 
+0

, что делает 'console.log (данные)' печать? – meskobalazs

+0

Я не знаю, какое окно он печатает в визуальной студии. – NNassar

+0

Посмотрите его в браузере – meskobalazs

ответ

0

Это то, что я закончил делать.

vb.net Код

Function QuickSearch(ByVal searchItem As String) As JsonResult 

    Dim QSVM As BusinessModel.QuickSearchViewModel = New BusinessModel.QuickSearchViewModel() 
    Dim returnedItem = QSVM.GetToolItemByItemNum(searchItem) 

    Return Json(New With {Key .results = returnedItem}, JsonRequestBehavior.AllowGet) 
End Function 

JavaScript код

$("#btnQuickSearch").live("click", function (e) { 
     var searchText = document.getElementById('txtQuickSearch').value 

     if(searchText.length !== 0) { 
      var Url = '@Url.Content("~/Route/QuickSearch")'; 

      $.ajax({ 
       url: Url, 
       async: 'false', 
       type: 'GET', 
       dataType: 'json', 
       data: {searchItem: searchText}, 
       success: function (results) {       
        for (var key in results) { 
         if(results[key] !== null){ 
          var obj = results[key]; 
          for (var prop in obj) { 
           if(obj.hasOwnProperty(prop)){ 
            switch(prop) { 
             case "Price": 
              document.getElementById('QSPrice').value = obj[prop]; 
              break; 
             case "Description": 
              document.getElementById('QSDescription').value = obj[prop]; 
              break; 
             case "Class": 
              document.getElementById('QSClass').value = obj[prop]; 
              break; 
             case "QtyOnHand": 
              document.getElementById('QSQty').value = obj[prop]; 
              break; 
             case "TakeOrderF": 
              var boolValue; 
              if(obj[prop] == true){ 
               boolValue = "Yes"; 
              } 
              else{ 
               boolValue = "No"; 
              } 
              document.getElementById('QSCanOrder').value = boolValue; 
              break; 
             case "Warranty": 
              document.getElementById('QSWarranty').value = obj[prop]; 
              break; 
            } 
           } 
          } 
         } 
         else{ 
          showMessage("Item Not Found."); 
         } 
        } 
       }, 
       error: function (error) { 
        showMessage("Item Not Found/json error."); 
       } 
      }); 
     } else { 
      //Show Message 
      showMessage("Item Not Found."); 
     } 
    }); 
Смежные вопросы