2011-08-24 6 views
1

익명 형식을 사용하여 뷰에 데이터를 전달하는 여러 가지 예제를 보았습니다. 나는 정보의 중요한 비트를 놓치고있는 것처럼 보입니다.MVC2의 부분 뷰에서 익명 형식의 모델

public class BlogController : Controller 
{ 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    public ActionResult Title(object args) 
    { 
     return View(args); 
    } 

} 

Index.aspx이

<%= Html.Action("Title", new { Name = "Jake" }) %> 

통화 및 title.ascx는 단순히 : 문제의 행동을 탐색

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %> 
<h3><%= Model.Name %>'s Blog</h3> 

런타임 예외가 발생합니다 : 다음과 같은 인위적인 예를 고려

'object' does not contain a definition for 'Name' 

이 작업을 수행하는 다른 방법이 있다는 것을 알고 있습니다. 필자의 견해를 강력하게 형식화하거나 데이터를 ViewData 객체로 푸시 할 수 있습니다. 이 특별한 경우 Name 속성이 있고 Name에 바인딩하는 모든 개체를 전달할 수 있어야합니다. 내가 빠진 것이 있습니까?

답변

4

매개 변수 argsobject입니다. 경로 값을 Html.Action으로 전달할 경우 매개 변수에 바인딩하지 않는 Name이라는 string 매개 변수로 실제로 끝납니다.

<%= Html.Action("Title", new { args = new { Name = "Jake" } }) %> 
:

는에 전화를 변경