none
动态对象在aspx页面中的一个bug RRS feed

  • 问题

  • 我在Page中定义了一个动态属性ViewBag:

        public partial class Index : System.Web.UI.Page
        {
            protected dynamic __ViewBag__=new ExpandoObject();
            public dynamic ViewBag { get { return __ViewBag__; } }
            protected void Page_Load(object sender, EventArgs e)
            {

            }
        }

    在 aspx中的代码如下:

                <%foreach(var cup in ViewBag.cups){ %>
                <tr>
                    <td><%=cup.id %></td>
                    <td><%=cup.name_cn %></td>
                </tr>
                <%} %>

    错误 8 找不到编译动态表达式所需的一种或多种类型。是否缺少引用?

    检查:Microsoft.CSharp.dll已经引入,此处的报错是一个bug, 请尽快修复.

    环境为vs2012,对了,有没有办法让aspx页面完全不报错?

    2015年4月26日 23:15

全部回复

  • 錯誤信息是說你缺了 Microsoft.CSharp.dll,看一下你的項目的Reference,有沒有?如果沒有,就右按Reference,選 "Add Reference" 再加回Microsoft.CSharp.dll,然後再Compile一次試試

    大家一齊探討、學習和研究,謝謝!
    MCSD, MCAD, MCSE+I, MCDBA, MCDST, MCSA, MCTS, MCITP, MCPD,
    MCT, Microsoft Community Star(TW & HK),
    Microsoft MVP for VB.NET since 2003
    My MSMVP Blog

    請記得將對您有幫助的回覆標示為解答以幫助其他尋找解答及參與社群討論的朋友們。
    Please remember to clickMark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    2015年4月27日 1:27
  • 已经引入了,已经测试过了,从vs2010到2015都有这个bug.

    aspx页面还不能使用dynamic类型.

    编译时没有错,但vs却一直提示错误.而且用户控件一旦使用此类型,属性相关的自动提示都没有了.
    2015年4月27日 13:38
  • 确认是bug,请官方尽快修复!!
    2015年4月27日 13:42
  • 也是可以用的,需要修改你的页面继承类。

    <%@ Page Title="" Language="VB" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage(Of myProject.Models.Navigation)" %>

    更多内容参考StackOverflow上帖子:

    Can I use ViewBag in an .aspx page?


    If my post is helpful,please help to vote as helpful, if my post solve your question, please help to make it as answer. My sample

    2016年4月10日 12:35