zoukankan      html  css  js  c++  java
  • mvc中razor的一个bug

      具体东西就不多说了,所有编译,代码都是木有问题的。

      结果预览页面的时候竟然告诉我编译错误,尼玛这不科学啊。

      来看看错误页面

    看着问题大概应该是缺少} ,或者多了个} 倒置的编译错误才对,但是编译生成完全没有问题啊,没办法,既然报这个问题,那肯定是最终合并生成的代码文件存在bug

    那到底是哪里出的问题呢,没办法,硬着头皮查吧。

    1.显示试着调试运行了一下页面,发现后台完全没问题。return view() 后,就出现了黄页。 那问题应该就是在html页面中了,那就来看看html页面中有些什么吧。

    一般的html,即便是错了也不会影响编译才对,更何况使用vs的自动对齐,是可以对齐代码的,一眼看去,应该是没有问题的。那估么这问题就应该在开头了。先来看看

    页面的部分代码吧

    @using Junph.Entities.EShop
    
    @{
        ViewBag.Title = "结算中心";
    
        var contactList = (IList<CRM_UserContact>) @ViewBag.ContactList;
        CRM_UserContact defaultContact = null;
        if (contactList != null)
        {
            defaultContact = contactList[0];
        }
    }
    
    
    
    <header>
        <div class="top">
            <div class="backicon"><a href="javascript:history.back()" target="_self"></a></div>
            <div class="titleFont">@ViewBag.Title</div>
            <div class="shopicon"><a href="@Url.Action("Index","Cart")" target="_self"></a></div>
        </div>
    </header>
    

      这是html页面的开头的一部分代码。后面的html就没有贴出了,没什么意义了。

    要说是}花括号的问题,那就只有一种可能了, 其中花括号的嵌套可能出现了问题。那到底是什么问题呢。先尝试去掉判断的代码试试吧。

    靠,果然没有问题了,页面至少是显示出来了。那问题肯定就在这里了。

    razor语法印象中这么写应该是没问题的吧。于是乎在确认了下,语法确实没有问题啊。

    http://blog.csdn.net/pasic/article/details/7072340

    那就很奇怪了,难道是bug?,于是乎换了中写法,将判断逻辑单独写在了一个代码块中(其实可以直接用三元表达式?:避免这个问题,这里主要是为了看看究竟)

    @{
        if (contactList != null)
        {
            defaultContact = contactList[0];
        }
    }
    

      再预览页面,没有问题。呵呵,我只能说坑啊,倒霉碰上了。

  • 相关阅读:
    Aspnet_regsql.exe命令行使用小结
    ListView用法学习
    < %=...%>< %#... %>< % %>< %@ %>
    jQuery入门简介
    oracle基础琐碎总结删除数据
    WindowsPhone基础琐碎总结数据绑定(一)
    ADO.NET基础琐碎总结参数化查询
    oracle基础琐碎总结Where和Having的区别与联系
    第一次使用 Windows Live Writer
    WindowsPhone基础琐碎总结数据绑定(二)
  • 原文地址:https://www.cnblogs.com/superCow/p/3851088.html
Copyright © 2011-2022 走看看