2013-06-25 6 views
0

Я разработал веб-приложение, используя mvc4.i, чтобы передать <IList> из контроллера для просмотра как json.Как передать результат json от контроллера для просмотра в mvc

ниже код в классе контроллера

public ActionResult GetTradeUserData([DataSourceRequest] DataSourceRequest request, int test) 
     { 
      wholeSaleModelUser = new WholeSaleInfoService().PopulateWholeSaleUserData(test); 
      return Json(wholeSaleModelUser, JsonRequestBehavior.AllowGet); 
     } 

и здесь есть код вида класса

<script> 
$("#submitMarketUser").click(function() { 
    $.ajax({ 
     url: "WholeSaleTrade/GetTradeUserData", 
     data: { test: $("#Names").val() }, 
     dataType: "json", 
     type: "POST", 
     success: function (data) { 

      alert(data.EmpNm); 

      $("#Contact").val(data.Contact); 
      $("#EPFNo").val(data.EPFNo); 
      $("#TitlKy").val(data.TitlKy); 
      $("#EmpNm").val(data.EmpNm); 
      $("#NameInInitials").val(data.NameInInitials); 
      $("#DtBirth").val(dateFromStringWithTime(data.DtBirth)); 
     }, 
     error: function (e) { 
      return false; 
     } 
    }); 
}); 

моя проблема данных объект не получает каких-либо данных и оповещение popup с текстом как «undefined».

Может кто-нибудь, пожалуйста, помогите мне здесь.

+1

Является ли метод GetTradeUserData помеченным атрибутом [HttpPost]? В противном случае метод не будет удалён, так как по умолчанию он будет принимать запросы GET, а вы - POSTING. Кроме того, вы добавили точку останова и посмотрели, действительно ли ваш код попал? – steinar

+0

Что означает 'alert (JSON.stringify (data));' показывать в своем обратном вызове? –

+0

Какой браузер вы используете? – Andrei

ответ

1

Хорошо, теперь, когда вы наконец показали JSON, посланное вашим услугам ясно, в чем проблема. У вас есть коллекция пользователей, а не один элемент:

[{"Name":"MarketFarmer","Contact":777369369,"Email":"[email protected]","Fax":114652652,"Address":"kalubowila road,dehivala"}] 

Также, пожалуйста, не то, что действительные свойства этого объекта являются Name, Contact, Email, Fax и Address, но в своем коде вы пытаетесь читать некоторые EPFNo, TitlKy, EmpNo, NameInInitials и DtBirth, которые не существуют в вашем возвращенном объекте

Так что для того, чтобы получить доступ к его значению, нужно, чтобы получить элемент внутри массива, а затем вы можете получить доступ доступных свойств:

success: function (data) { 
    var employee = data[0]; 

    alert(employee.Name); 
    alert(employee.Contact); 
    alert(employee.Email); 
}, 
+0

Thanx alot sir.! наконец, я решил проблему с вашим ответом. – sanzy

+0

Кстати, мой последний шаг: мне нужно назначить эти значения текстовым полям, которые существуют в другом представлении (а не в представлении этого скрипта) один за другим. Как это сделать? Как передать эти значения частичному представлению или Другая точка зрения??? – sanzy

0

Может быть, вы должны изменить ActionResult к JsonResult в контроллере

public JsonResult GetTradeUserData([DataSourceRequest] DataSourceRequest request, int test) 
     { 
      wholeSaleModelUser = new WholeSaleInfoService().PopulateWholeSaleUserData(test); 
      return this.Json(wholeSaleModelUser, JsonRequestBehavior.AllowGet); 
     } 
+0

Я сделал изменение, но я не смог получить положительный ответ. Проблема все еще там , – sanzy

+0

Испытываете ли вы, если переменная wholeSaleModelUser не равна нулю? Вы добавили точку останова в свой метод контроллера? –

+0

Да, я проверил с точкой останова и переменной wholeSaleModelUser, получая соответствующий результат, но не получим их в поле зрения – sanzy