CS1003:语法错误,'>'预计在Razor

时间:2013-09-18 16:02:14

标签: c# asp.net-mvc-4 razor

我正在为我的布局视图模型使用抽象基类尝试新的东西(对我而言)。

问题在于,当我按原样运行网站时,它会抛出一个非常神秘的(对我而言)异常。这个例外意味着什么,我可以做些什么来解决它?

布局

@model MyApp.Core.ViewModels.LayoutViewModel

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>@Model.Title</title>
</head>
<body>
    <div>
       @RenderBody()
    </div>
</body>
</html>

索引

@model MyApp.Core.ViewModels.Home.IndexViewModel;

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}


<h1>@Model.Body</h1>

LayoutViewModel

namespace MyApp.Core.ViewModels
{
    public abstract class LayoutViewModel
    {
        public string Title { get; set; }
    }
}

IndexViewModel

namespace MyApp.Core.ViewModels.Home
{
    public class IndexViewModel : LayoutViewModel
    {
        public string Body { get; set; }
    }
}

控制器

[HttpGet]
public ActionResult Index()
{
    var model = new IndexViewModel
        {
            Title = "Hello World",
            Body = "Hello World"
        };


    return View(model);
}

和例外

  

编译错误说明:期间发生错误   编译服务此请求所需的资源。请   查看以下特定错误详细信息并修改您的来源   代码恰当。

     

编译器错误消息:CS1003:语法错误,'&gt;'预期

     

来源错误:

Line 27:
Line 28:
Line 29:     public class _Page_Views_Home_Index_cshtml : 
System.Web.Mvc.WebViewPage<FutureStateMobile.Core.ViewModels.Home.IndexViewModel;>
{ 
Line 30:          
Line 31: #line hidden
     

源文件:c:\ Users \ Chase \ AppData \ Local \ Temp \ Temporary ASP.NET   文件\ ROOT \ b314e0d7 \ 36f522db \ App_Web_index.cshtml.a8d08dba.yr7oemfz.0.cs   行:29

3 个答案:

答案 0 :(得分:39)

比较和对比:

<强>布局

@model MyApp.Core.ViewModels.LayoutViewModel

<强>索引

@model MyApp.Core.ViewModels.Home.IndexViewModel;

知道了吗?这是答案:

  

其中一个人有;,不应该在那里

答案 1 :(得分:1)

我只是添加两行,然后删除...问题解决了!

@model MyApp.Core.ViewModels.LayoutViewModel
@model MyApp.Core.ViewModels.Layout_OrOther_Model

尝试编译,你得到一个错误(只有一个模型等等,等等......) 删除其中一个。

@model MyApp.Core.ViewModels.LayoutViewModel

编译。

这对我有用!

答案 2 :(得分:-1)

不好:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<DSNY.Core.Interfaces.IUser>" %>

好:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<DSNY.Core.Interfaces.IUser>>" %>

编译器不断告诉我,它期待额外的>