gpt4 book ai didi

asp.net-mvc-2 - EditorFor - 传递到字典中的模型项的类型为 'System.Int32' ,但此字典需要类型为 'System.String' 的模型项

转载 作者:行者123 更新时间:2023-12-02 19:53:47 24 4
gpt4 key购买 nike

我似乎无法弄清楚为什么这不起作用。我正在使用 ASP.NET MVC2,我只是尝试通过将此代码放入/Shared/EditorTemplates/String.ascx 来覆盖默认编辑器外观:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>
<%=Html.TextBox(null, Model, new { @class="Text" }) %>

然后在我的“查看”页面中,我有这一行,其类型为 Int32:

<%: Html.EditorFor(model => model.AppID) %>

由于某种原因,这会导致错误:

System.InvalidOperationException: The model item passed into the dictionary is of type 'System.Int32', but this dictionary requires a model item of type 'System.String'.

我不明白我这边有什么问题,这很简单。如果类型是 Int32,为什么它尝试使用字符串编辑器?我还应该提到我已经重写了编辑器的 bool 值?类型(将 bool 值呈现为复选框)并且它在同一页面上工作得很好。

编辑

好吧,我搜索了很多次,但直到我在“相关”链接中找到了这篇文章,我才看到它。我想这会起作用,但我仍然认为这是一个令人困惑且不一致的实现:

Asp.net Mvc Display template of String, but now every simple type wants to use it!

最佳答案

在 kendo ui Grid 中执行以下操作:

public class BookBean
{
[ScaffoldColumn(false)]
public Int32 Id { set; get; }

public String Title { set; get; }

public String Author { set; get; }

public String Publisher { set; get; }

[UIHint("Integer")]
public Int32 Price { set; get; }

[UIHint("Integer")]
public Int32 Instore { set; get; }

[UIHint("Integer")]
public Int32 GroupId { get; set; }
}

在 Shared/EditorTemplate 文件夹中的 Integer.ascx 中执行以下操作:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<int?>" %>

<%: Html.Kendo().IntegerTextBoxFor(m => m)
.HtmlAttributes(new { style = "width:100%" })
.Min(int.MinValue)
.Max(int.MaxValue)
%>

关于asp.net-mvc-2 - EditorFor - 传递到字典中的模型项的类型为 'System.Int32' ,但此字典需要类型为 'System.String' 的模型项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7448025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com