2012-02-20 8 views
1

컨트롤러에서 mvc3 면도기의 데이터를 어떻게 전달할 수 있는지 알고 싶습니다. 보기는 .cshtml 파일에 있습니다. 나는 뷰에서 목록 상자 컨트롤로 푸시해야하는 데이터를 저장할 컨트롤러에 변수가 있습니다. 목록 상자가에있는보기에서컨트롤러 동작에서 면도기보기로 JSON 데이터 전달

result

:

return Json(results, JsonRequestBehavior.AllowGet); 

이 목록 상자에 푸시 될 필요가있는 데이터 나에게 단지 팝업을 제공합니다 : 이렇게

var results = data.Select(item => new { id = item, label = item.Value, value = item.Key }); 

아코디언 제어 :

<div id="accordion"> 
    @{int i=0;} 
     @foreach (var item in Model.Parameters) 
     { 
      <h3><a href="#">@Html.LabelFor(m => item.Name, item.Prompt)</a></h3> 
      <div>     

       <div class="editor-field"> 
        <select multiple id="@("Select" +item.Name)" name="@("Select" +item.Name)"></select>       
       </div>          
      </div> 
      i++; 
     }   
    </div> 

그래서, 컨트롤에 대한 팝업을 표시하는 대신 항목을 목록 상자에 밀어 넣기 위해 무엇을해야하는지 알고 싶습니다. MVC의 초보자, 이해해 주셔서 감사합니다.

사전에 감사합니다, Laziale의

편집 : 당신의 면도칼보기로 JSON을 반환 JSON 형식으로 출력

{System.Linq.Enumerable.WhereSelectListIterator<System.Collections.Generic.KeyValuePair<string,string>,<>f__AnonymousType1<System.Collections.Generic.KeyValuePair<string,string>,string,string>>} 
+0

컨트롤러에서 JSON을보기에 적합한 형식으로 게시 할 수 있습니까? –

+0

@RoryMcCrossan 게시물이 형식으로 업데이트되었는지 확인하십시오. Thx – Laziale

+0

+1, 좋은 질문, 내 친구가 자주 내게 물어 ... –

답변

2

아마 가장 좋은 방법은 아닙니다. 나는 그 자체로 C# 클래스 인 viewModel을 사용할 것을 제안한다.

namespace Test 
{ 
    public class ViewModel 
    { 
     public bool GivingAPresentation { get; set; } 
    } 
} 

public class MyController: Controller 
{ 

    public virtual ActionResult Index() 
    { 
     var model=new ViewModel(){GivingAPresentation =true;} 
     return View(model); 
    } 

} 

로보기 코드 : 당신은 당신이 먼저 직렬화하고 해당 객체 작업에 필요한 액션에서 반환 된 JSON 객체와 함께 작동하도록 강제하는 경우

@model Test.ViewModel <!-- Note the full namespace --> 

<br>GivingAPresentation: @Model.GivingAPresentation </br> 

. 당신은이 게시물 http://www.drowningintechnicaldebt.com/ShawnWeisfeld/archive/2010/08/22/using-c-4.0-and-dynamic-to-parse-json.aspx JSON을 어떻게 C# 동적 객체로 파싱하는지 읽을 수 있습니다.

도움이되는지 알려주세요.

+0

귀하의 의견을 보내 주셔서 감사합니다,하지만 나는 이미 데이터를 가져 오는 기존 컨트롤에 통합해야하지만, 다른 방법으로. 그렇게 할 수 있다고 생각합니까? Thx – Laziale

+0

나는 링크를 추가하고 내 대답을 업데이 트했습니다. 도움이되는지보십시오 .. – Baz1nga

+0

+1, 좋은 답변, 내 친구가 자주 내게 물었다 :) –