- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个包含 MvcHtmlString 类型变量的页面类。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;
using System.Globalization;
using SpringHealthOne.SpringWS;
using System.Configuration;
namespace SpringHealthOne.Models
{
public class Page
{
public int PageID { get; set; }
[Required]
public string Title { get; set; }
[Required]
public MvcHtmlString PageBody { get; set; }
public string MetaTitle { get; set; }
public string MetaDescription { get; set; }
public string Keywords { get; set; }
public bool Published { get; set; }
}
}
这本身很好,visual studios 2012 没有报告任何错误或警告。但是,当我尝试以 Debug模式启动项目时,它会抛出:
One or more validation errors were detected during model generation:
\tSystem.Data.Entity.Edm.EdmEntityType: : EntityType 'MvcHtmlString' has no key defined. Define the key for this EntityType. \tSystem.Data.Entity.Edm.EdmEntitySet: EntityType: EntitySet 'MvcHtmlStrings' is based on type 'MvcHtmlString' that has no keys defined.
显示它的行在我的 MenuController 中:
IEnumerable<MenuItem> menuItems = db.MenuItems.Where(c => c.ParentID == null).OrderBy(c => c.DisplayOrder).Select(c => c);
我一直跟踪到调用 Page 类的数据库上下文,但我无法弄清楚为什么我会看到具体的错误。
上下文:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration;
using System.ComponentModel.DataAnnotations.Schema;
using SpringHealthOne.App_Start;
using System.Web.Mvc;
namespace SpringHealthOne.Models
{
public class SpringerContext : DbContext
{
public DbSet<MenuItem> MenuItems { get; set; }
public DbSet<Page> Pages { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
Database.SetInitializer<SpringerContext>(new SpringerContextInitializer());
modelBuilder.Configurations.Add(new MenuItemConfiguration());
base.OnModelCreating(modelBuilder);
}
}
}
我对 C# 很陌生,对 MVC 更是如此。任何帮助都会很棒。
最佳答案
MvcHtmlString
不是原始类型,所以不能直接保存到数据库的字段中。并且实体类型需要 ID 属性(否则您将无法在数据库中设置外键)。如果您想将 Page
对象存储在数据库中,请使用简单的 string
而不是 MvcHtmlString
。
您还可以将此属性标记为未映射并创建将保存到数据库的字符串属性:
[NotMapped]
public MvcHtmlString PageBody { get; set; }
public string Body
{
get { return PageBody.ToHtmlString(); }
set { PageBody = new MvcHtmlString(value); }
}
关于c# - EntityType 'MvcHtmlString' 没有定义键 - MVC 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20188648/
我正在尝试使用 MvcHtmlString.Create 创建 JavaScript 变量。但是输出仍在编码中。 var geocode_jsonresult = @MvcHtmlString.Cre
我已经创建了自己的 Html Helper,它将红色星号添加到任何必填字段。 它成功地与两者一起工作 @Html.myLabelFor(model => model.Description) //an
我写了一个 HtmlHelper 扩展方法,它读取 CSS 文件的内容并将其包装到一个 中。标签: public static IHtmlString EmbedCss(this HtmlHelpe
documentation对于 MvcHtmlString 并不是很有启发性: Represents an HTML-encoded string that should not be encoded
我有一个看起来像这样的字符串:Foo's Bazz 我正在使用自定义 HtmlHelper 在 div 元素内呈现此文本: public static MvcHtmlString DisplayWit
我在我的项目中派生了 mvc4 MultiSelectList 类来实现 ToMvcHtmlString 方法。如何从我的 MultiSelectList 实例中获取纯 html? public Mv
我正在编写一个生成 JavaScript 代码并发送 Razor View 的方法。但是 razor view 根据其 head 对其进行编码。代码如下。 这是我的方法体,返回一个 mvchtmlst
我正在查看 MvcHtmlString 及其基类 HtmlString 的源代码,它们似乎都是字符串的无用包装器。 我记得有一次我做过这个练习并看到了好处,但现在想不起来了。当时我花了很多时间研究 M
我将 MvcHtmlString 作为我 View 的模型。我需要将此字符串呈现为 HTML。目前我尝试这样做: @Model.ToHtmlString() 但它在我的页面上给了我纯文字。我知道这应该
我从MVC 1到MVC 2 converted my project,Visual Studio 2008给我以下错误: Error 1 'System.Web.Mvc.MvcHtmlStri
HtmlString 与 MvcHtmlString 这两者之间有什么区别,或者什么时候更喜欢其中一个? 编辑: 与 HtmlString 相比,MvcHtmlString 更受青睐的是 MvcHtm
与此相关question我在 ASP.NET MVC 项目中遇到了 XSS 问题,并且对 MvcHtmlSTRing.ToHtmlString() 方法感到困惑。来自 documentation “返
我想更改 DisplayFor 输出(格式化字符串),但输出字符串有一个 & 符号。如何处理 MvcHtmlString 以不转义 & 符号? 这是 cshtml 文件中的代码: @{ str
我正在尝试使用出色的 PagedList.Mvc Visual Studio 2015 RC 中的分页库,但从我的角度来看我得到了这个异常: The type 'MvcHtmlString' is d
我有一个包含 MvcHtmlString 类型变量的页面类。 using System; using System.Collections.Generic; using System.Linq; us
我一定是漏掉了什么,因为this doc 说,MvcHtmlString.Create("someStringHere")返回 html 编码的字符串,但如果我有类似 MvcHtmlString.Cr
是否可以将 css 类注入(inject)到封装在 MvcHtmlString 中的 HTML 元素中? ? 作为我正在构建的框架的一部分,我的任务是为表单元素(TextBox、TextBoxFor<
由于在 MSDN 中找到了此信息,我对如何连接 MvcHtmlString 实例有一些疑问。 : MvcHtmlString Class Represents an HTML-encoded stri
我刚开始使用 RazorEngine,但在使用静态辅助方法时遇到了麻烦。它只是为模板生成一个 MvcHtmlString/IHtmlString。当调用 Razor.Parse(...) 我得到 Ra
我正在将 ASP.NET MVC 应用程序转换为 ASP.NET MVC 2 4.0,并收到此错误: Operator '+' cannot be applied to operands of typ
我是一名优秀的程序员,十分优秀!