标签: asp.net-mvc-migration

为什么`DatabaseGenerated(DatabaseGeneratedOption.Identity)`在MVC 4中不起作用

我试图将我的MVC 3项目移动到MVC 4但是当我想移动这个模型时:

public class Link
{
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public Guid ID { get; set; }

    [DisplayName("Shorted URL")]
    public string SURL { get; set; }

    [DisplayName("General Link")]
    public string OriginalURL { get; set; }

    [DisplayName("Click Count")]
    public int ClickCount { get; set; }
}

public class LinkDBContext : DbContext
{
    public DbSet<Link> Links { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我的[System.ComponentModel.DataAnnotations.(DatabaseGeneratedOption.Identity)]属性出错了.我不知道是什么问题.有人知道吗?!?

更新

这些是错误:

找不到类型或命名空间名称"DatabaseGeneratedAttribute"(您是否缺少using指令或程序集引用?)

找不到类型或命名空间名称"DatabaseGenerated"(您是否缺少using指令或程序集引用?)

c# entity-framework ef-code-first asp.net-mvc-migration

11
推荐指数
1
解决办法
3万
查看次数

Razor View语法无法识别HTML属性中的"@"

我正在将项目从MVC 2迁移到MVC3和剃刀视图引擎.

在MVC 2中,我将有以下html:

<div id="del_<%= Model.ActivityID.ToString() %>"></div>
Run Code Online (Sandbox Code Playgroud)

使用razor时,我尝试了以下操作,当我想要del_1时,它会呈现文字文本"del_@Model.ActivityID.ToString()".

<div id="del_@Model.ActivityID.ToString()"></div>
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我使用了:

<div id="@Model.ActivityID.ToString()_del"></div>
Run Code Online (Sandbox Code Playgroud)

是否有使用这种语法使剃须刀工作?

<div id="del_@Model.ActivityID.ToString()"></div>
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc razor asp.net-mvc-migration

6
推荐指数
1
解决办法
2054
查看次数

从MVC 3升级到4后,Razor帮助程序方法无法正常工作

我在App_Code目录下的文件中有一个帮助方法.该方法在MVC 3中运行得非常好,但在升级到MVC 4后却没有.它在第一个@if()块失败了......

[编辑]这看起来像是Razor引擎中的解析错误.当我的所有对象及其属性都不为null时,我得到'对象引用没有设置为对象的实例'错误.我想我必须直接去微软.

[编辑]错误消息是旧的"对象引用未设置为对象的实例".这很奇怪,因为条件中的每个对象AND属性都是有效的而不是null.

@helper RenderConnectButton(System.Web.Mvc.HtmlHelper helper, ContactTwitterHandleDto contactTwitterHandle, ContactFacebookAccountDto contactFacebookAccount) {
    <ul class="socialMedia inlineList">           
        @if (contactTwitterHandle != null && contactTwitterHandle.IsValid.HasValue && contactTwitterHandle.IsValid.Value)
        {
            var tHandle = "@" + contactTwitterHandle.Handle;
            <li class="twitter">
                <a class="btn" href="http://www.twitter.com/@contactTwitterHandle.Handle" target="_blank">
                    <i></i>
                    <span class="label">@tHandle</span> 
                </a>
                @if(contactTwitterHandle.FollowerCount.HasValue)
                {
                    <div class="count" id="c">
                        <i></i>
                        <u></u>
                        <span class="followers" title="@contactTwitterHandle.FollowerCount.Value followers">@FollowerCount(contactTwitterHandle.FollowerCount.Value)</span>
                    </div>
                }                    
            </li>
            <script type="text/javascript">
                $("#twitter").click(function () {
                    window.location.href = '@(helper.BuildUrlFromExpression<TenantController>(t => t.LinkTwitterAccount()))';
                })
            </script>
        }

        @if (contactFacebookAccount != null && contactFacebookAccount.IsValid.HasValue && contactFacebookAccount.IsValid.Value)
        {
            <li class="facebook">
                <a …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc asp.net-mvc-migration

6
推荐指数
1
解决办法
1808
查看次数