2

在对我的项目进行了一些升级之后,突然我生成的“_createoredit.cshtml”文件被这样炸毁了:

传入字典的模型项为空,但此字典需要“System.Int32”类型的非空模型项。说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.InvalidOperationException:传入字典的模型项为空,但此字典需要“System.Int32”类型的非空模型项。

源错误:

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>

它引用的字段是可为空的 int 类型。这只是以前的工作(生产版本仍然运行良好),我对项目所做的更改不应该触及它使用的任何东西,所以现在我无法弄清楚为什么这会爆炸。

更新 1-从模型中添加字段 def

[DisplayName("Number of Stores (if applicable)")]
public Nullable<int> NumOfStores { get; set; }

此外,我已经验证所有可为空的值类型都存在同样的问题。

4

2 回答 2

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

于 2011-11-29T16:24:03.177 回答
0

我最终为 int32 和 double 添加了自定义编辑器模板以使其正常工作。我意识到我正在使用的项目添加了 Telerik 控件,所以我认为我不确定如何调试东西,似乎他们以某种方式参与了默认模板。

于 2011-11-30T22:57:21.593 回答