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];
}
}
再预览页面,没有问题。呵呵,我只能说坑啊,倒霉碰上了。
mvc中razor的一个bug的更多相关文章
- 学习MVC中出现的一个BUG
BUG描述:No Entity Framework provider found for the ADO.NET provider with invariant name 'System.Data.S ...
- 关于MVC中DropDownListFor的一个bug
如以下代码: //后台 代码 ViewData["source_type"] = new List<SelectListItem> { "}, "} ...
- mvc中动态给一个Model类的属性设置验证
原文:mvc中动态给一个Model类的属性设置验证 在mvc中有自带的验证机制,比如如果某个字段的类型是数字或者日期,那么用户在输入汉字或者英文字符时,那么编译器会自动验证并提示用户格式不正确,不过这 ...
- 从项目经理的角度看.net的MVC中Razor语法真的很垃圾.
我们知道,Razor语法中我们可以直接使用@if(){}等代码段,这使得.net程序员在写模版时更容易了. 对比如下: 语法名称 Razor 语法 Web Forms 等效语法 代码块(服务端) @{ ...
- MVC 中 Razor 无限分类的展示
在MVC的Razor视图展示无级分类的办法,在网上看了很多资料,大多搞得很高大上.可能本人水平有限,实在是不会用. 那我就用最简单爆力的办法来做. Model: public class NewsCa ...
- MVC 中 Razor引擎学习:RenderBody,RenderPage和RenderSection
RenderBody 在Razor引擎中没有了“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面中,会看到 标签里有这样一条语句: @Rend ...
- MVC中Razor的使用 及路径问题
语法: @ 可以编写一条C#语句@{} 可以编写一组C#语句@: 将文字内容直接输出到页面上去@() 在一句中将一段C#代码包括起来,证明这一句完整的C#代码 引用命名空间:@using 空间名称 H ...
- MVC中Razor视图基本语法(1)
Razor前面,必须要跟前面的有空隙,即空格(多谢一楼提醒,url里面确实不用空格,如果要在url里面只需要@(ViewBag.),加上括号就好了),之后的必须要连贯,否则加小括号 1,在页面中输出单 ...
- Silverlight:telerik RadControls中RadGridView的一个Bug及解决办法(转载)
当RadGridView中嵌套RadComboBox,且RadGridView的高度不够出现滚动条时,上下拉动滚动条后,RadComboBox中的选中值将丢失! 如下图: 滚动条未拖动前 滚动条上下拖 ...
随机推荐
- sql 删除重复数据,保留重复数据第一条
SELECT row=ROW_NUMBER() OVER(PARTITION BY 重复字段一,重复字段二 ORDER BY GETDATE()) ,* FROM 筛选重复表名 具体实现如 ...
- 【LeetCode】Binary Tree Level Order Traversal 【BFS】
Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...
- AndroidStudio运行项目出现Unsupported method: AndroidProject.getPluginGeneration()错误解决办法
一.错误描述 今天在使用AndroidStudio运行项目时出现了一个Unsupported method: AndroidProject.getPluginGeneration()错误,如下图所示: ...
- Flume-ng源码解析之Source组件
如果你还没看过Flume-ng源码解析系列中的启动流程.Channel组件和Sink组件,可以点击下面链接: Flume-ng源码解析之启动流程 Flume-ng源码解析之Channel组件 Flum ...
- Lowest Common Ancestor of a Binary Tree leetcode
Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. According ...
- 1590: [Usaco2008 Dec]Secret Message 秘密信息
1590: [Usaco2008 Dec]Secret Message 秘密信息 Time Limit: 5 Sec Memory Limit: 32 MBSubmit: 209 Solved: ...
- 基于JAVA语言的selenium测试基础总结
目录一.基本语句1.循环控制(break,continue)3.字符的替换(replace,repalceFirst,replaceAll,regex)4.字符串的连接("+",a ...
- PHP服务器脚本 PHP内核探索:新垃圾回收机制说明
在5.2及更早版本的PHP中,没有专门的垃圾回收器GC(Garbage Collection),引擎在判断一个变量空间是否能够被释放的时候是依据这个变量的zval的refcount的值,如果refco ...
- NIO(一、概述)
离上次发布文章已过去好几个月,说好的积累和分享都烟消云散.似乎忙碌从未终止过,加班成为常态,甚至阅读都需要更琐碎的时间. 目录 NIO(一.概述) NIO(二.Buffer) 概述 JavaNIO(n ...
- 富文本,NSAttributedString,当需要改变的内容有相同的时候的解决方法
在开发的过程中可能会遇到富文本展示,例如:一行文本,前面是题后面是答案,题和答案用不同的颜色字体,但是答案的内容在题总也有,这时候用平常的方法就会展示错误,因为把题中的内容改变了颜色二实际答案却没有改 ...