2010-05-17 95 views
0

我有一个创建动态实体的页面。使用动态类型的MVC强类型视图

<%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %> 
... 

我有两个动作:

public ActionResult Create() 
    { 
     dynamic model = ... 
     return View(model); 
    } 

[HttpPost] 
public ActionResult Create(dynamic(1) entity) 
    { 
    ...  
    } 

好了,问题是,实体来自空从页面。如果我改变(1)中的动态为真实类型,它工作正常。

+0

你可以发表看法这里的代码? – 2012-06-07 17:12:41

回答

0

我对此并不是100%,但我认为问题在于默认模型联编程序不知道如何处理“动态”类型,因为它没有任何定义的属性来反映。您需要编写自己的模型绑定器,它将使用表单输入名称,这是危险/不可靠的,因为可以在客户端修改表单。

我已经探讨过动态类型的ViewPages之前(这里实际上是:Dynamic typed ViewPage),我得出结论,它在大多数情况下确实不会给你任何东西。至少,还没有(MVC 3+可能是不同的故事)。

下面是从菲尔哈克一些笔记对此事:http://haacked.com/archive/2009/08/26/method-missing-csharp-4.aspx