【问题标题】:using dynamic as type of MVC strongly typed view使用动态作为 MVC 强类型视图的类型
【发布时间】:2010-05-17 14:30:23
【问题描述】:

我有一个用于创建动态实体的页面。

<%@ 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) 中的动态更改为真实类型,它可以正常工作。

【问题讨论】:

  • 你能把代码贴在这里查看吗?

标签: asp.net-mvc dynamic view


【解决方案1】:

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

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

以下是 Phil Haack 关于此事的一些说明:http://haacked.com/archive/2009/08/26/method-missing-csharp-4.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-10
    • 2015-02-11
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多