MVC2中部分视图中匿名类型的模型

时间:2011-08-24 16:21:09

标签: .net asp.net-mvc partialviews

我见过许多使用匿名类型将数据传递给视图的示例。不过,我似乎错过了一些关键信息。考虑以下设计的例子:

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的对象。有什么我想念的吗?

1 个答案:

答案 0 :(得分:4)

参数args的类型为object。当您将路线值传递给Html.Action时,实际上您最终会得到一个名为string的{​​{1}}参数,该参数当然不会绑定到参数Name

将您的电话改为:

args