2011-12-13 2 views
2

나는 면도칼 형식을 정의하기 위해 면도기 인라인 템플릿을 사용하고 있습니다.ASP.net MVC : 코드에서 면도기 인라인 템플릿을 정의하려면 어떻게합니까?

enter image description here

당신이 면도기 내부보기 인라인 템플릿을 정의하는 경우 큰이 작품.

컨트롤러의 코드에서 동일한 방법 (인라인 템플릿으로 열 목록 정의)을 수행 할 수 있습니까?

+2

왜 컨트롤러에 있습니까? ColumnModels 정의를 ViewModel에 그대로두고 그리드를 내 보냅니다. 물론 ViewModel은 컨트롤러에 의해 설정됩니다. 편집 : 작전, 오해, 미안 해요. 여전히 카페인이 여전히 낮습니다. ( – BigMike

+0

Eduardo, MVC 패턴은보기 만 사용자 인터페이스의 세부 사항을 알 수 있도록 설계 및 구현되었으므로 컨트롤러는 그리드, 그리드 열, 버튼 또는 기타를 사용하고 있음을 알지 못합니다 ... –

+0

Davide : 귀하의 우려에 감사드립니다. 질문을 더 간단하게 만들기 위해 컨트롤러를 사용하고 샘플을 그리는 중입니다. 제가 만드는 솔루션은 그보다 복잡합니다 .BTW, 답변을 알고 있습니까? –

답변

3

다음은 샘플 코드입니다. this을 사용하여보기 코드를 가져올 수도 있습니다. 그리드 연장을 위해 this을 참조하십시오.

public class HomeController : Controller 
{ 
    public class Employee 
    { 
     public string Name { get; set; } 
     public string Description { get; set; } 
     public int Price { get; set; } 
    } 
    public ActionResult Index() 
    { 
     var myClasses = new List<Employee>{ 
      new Employee { Name="A" , Price=1, Description="A A"}, 
      new Employee { Name="B" , Price=2, Description="B B"}, 
      new Employee { Name="C" , Price=3, Description="C C"}}; 

     var grid = new WebGrid(source: myClasses); 
     var html = grid.GetHtml(
      columns: grid.Columns(
       grid.Column("Name", "Product", style: "product"), 
       grid.Column("Description", format: item => new System.Web.WebPages.HelperResult(writer => 
       { 
        WriteLiteralTo(writer, "<i>"); 
        WriteTo(writer, item.Description); 
        WriteLiteralTo(writer, "</i>"); 
       })), 
       grid.Column("Price", format: item => new System.Web.WebPages.HelperResult(wrtier => 
       { 
        WriteLiteralTo(wrtier, "$"); 
        WriteTo(wrtier, item.Price); 
       })) 
      ) 
     ); 
     return View(); 
    } 

    private void WriteLiteralTo(TextWriter writer, object content) 
    { 
     writer.Write(HttpUtility.HtmlEncode(content)); 
    } 

    public static void WriteTo(TextWriter writer, object content) 
    { 
     writer.Write(HttpUtility.HtmlEncode(content)); 
    } 

} 
관련 문제