Joh*_*man 6 c# asp.net razor asp.net-mvc-3
我经常遇到项目中的视图抛出空引用异常的情况.
@model Johnny.Application.TestModel
<div>@(Model.SomeText)</div>
Run Code Online (Sandbox Code Playgroud)
如果Model为null,则抛出错误.
但人们如何处理这个?我当然没有看到代码样本到处都是丑陋的空检查乱丢了视图中的代码.这让我相信大多数时候,控制器不应该返回null模型.但是你怎么能用更精细的方式来强制执行呢?
现在,只要有人意外导致控制器返回空模型,视图模型就会爆炸并且看起来有问题.实际上,这是控制器的错.并且该视图甚至可能"捕获"该问题,只有在模型的成员碰巧被使用时才会这样做(当然,大多数时候都是这样).
由于各种原因,某些视图可能希望处理空值.不过,我不认为这是大多数情况.显然,这是在视图和控制器之间设置一些"契约"的问题.
我不喜欢我见过的选项:
我很想知道是否存在类似这些选项来设置"无空"合同:
小智 2
我在这里问了一个类似的问题应该尝试防范 MVC 视图中的空引用异常/索引越界异常吗?并得到了良好的反响。简而言之,最好在控制器中添加空检查,甚至可能在单元测试中添加空检查,而不是在视图中添加空检查。
归档时间: |
|
查看次数: |
1723 次 |
最近记录: |