在对我的项目进行一些升级后,我的生成的“_createoredit.cshtml”文件突然爆炸了:
传入字典的模型项为null,但是这个字典 需要一个类型为“System.Int32”的非null模型项。描述: 在执行当前期间发生了未处理的异常 网络请求。请查看堆栈跟踪以获取更多信息 错误以及它在代码中的起源。
异常详细信息:System.InvalidOperationException:模型项 传入字典是null,但这个字典需要一个 “System.Int32”类型的非null模型项。
来源错误:
Line 273:</div>
Line 274:<div class="editor-field">
Line 275:@Html.EditorFor(model => model.NumOfStores)
Line 276:@Html.ValidationMessageFor(model => model.NumOfStores)
Line 277:</div>
它引用的字段是可以为null的int类型。 这只是之前工作(生产版本仍然正常运行),我对项目所做的更改不应该触及这个使用的任何东西,所以现在我无法弄清楚为什么这会爆炸。
更新1-从模型添加字段def
[DisplayName("Number of Stores (if applicable)")]
public Nullable<int> NumOfStores { get; set; }
此外,我已经验证所有可以为空的值类型都存在同样的问题。
答案 0 :(得分:1)
尝试为模板指定名称。
@Html.EditorFor(model => model.NumOfStores, "NumStoresTemplate")
更多信息(来自MVC 2,但我认为它适用于您的情况)http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html
答案 1 :(得分:0)
我最终为int32添加了自定义编辑器模板,并使用了两倍来使其工作。我意识到我正在使用的项目中添加了telerik控件,所以我认为我不确定如何调试,看起来他们正在以某种方式参与默认模板。