2012-10-30 2 views
0

IEnumerable 모델에 바인딩 된 표 컨트롤이 있습니다. 어떻게 내 컨트롤러에서 레코드를 저장하고 싶습니다. 내가 사용하고있는 격자 컨트롤은 Telerik 'Kendo'의 것입니다. 요청을 다시 문자열이며 내 바인딩 된 개체 'CustomerViewModel'어떻게 내 개체가 null로 다시 전달할 때 싶습니다. 다른 유형의 정보를 시도해 보았습니다. 전달하고자하는 속성을 지정하기 위해서만 작동하는 것 같습니다. 아래 코드를 찾고 도움을 요청하십시오.ASP.NET MVC에서 쿼리 문자열을 객체에 바인딩합니까?

[AcceptVerbs(HttpVerbs.Post)] 
     public ActionResult Save([DataSourceRequest] DataSourceRequest request, CustomerViewModel customerViewModel) 
     { 
      if (customerViewModel != null && ModelState.IsValid) 
      { 
       var customers = Repository.GetItems<Customer>(); 
       Repository.SaveChanges<Customer, CustomerViewModel, NorthWindDataContext>(customers, customerViewModel); 
      } 
      return Json(ModelState.ToDataSourceResult()); 
     } 
+0

보기에서 코드를 게시 할 수 있습니까? – Raymund

답변

2

개체가 쿼리 문자열에 포함 된 경우 MVC는 항상이를 문자열로 간주합니다.

당신이 뭔가를 할 필요가있을 것이다 : 나는 당신이 JSON에 콘텐츠 형식을 설정할 수 아약스 GET 또는 우편 할 수 없어 비슷한 고민 한

public ActionResult Save(string customerViewString) 
    { 
     var jsonSerializer = new JavaScriptSerializer(); 
     var customerViewModel = jsonSerializer.Deserialize<CustomerViewModel>(customerViewString); 
     if (customerViewModel != null && ModelState.IsValid) 
     { 
      var customers = Repository.GetItems<Customer>(); 
      Repository.SaveChanges<Customer, CustomerViewModel, NorthWindDataContext>(customers, customerViewModel); 
     } 
     return Json(ModelState.ToDataSourceResult()); 
    } 

. 질의 문자열에서 그 일을 할 수있는 방법이 없을 것 같습니다.

컨트롤러에서 이것을 직렬화 해제하는 것이 유일한 옵션처럼 보입니다. 이 일을 더 깔끔하게 보여줄 수있는 사람의 이야기를 듣고 싶습니다.

관련 문제