18

在为我的布局视图模型使用抽象基类时,我正在尝试一些新的东西(对我来说)。

问题是,当我按原样运行该站点时,它会引发一个非常神秘的(对我而言)异常。这个异常是什么意思,我可以做些什么来解决它?

布局

@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>

布局视图模型

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

索引视图模型

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:语法错误,应为“>”

源错误:

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 Files\root\b314e0d7\36f522db\App_Web_index.cshtml.a8d08dba.yr7oemfz.0.cs 行:29

4

3 回答 3

42

比较和对比:

布局

@model MyApp.Core.ViewModels.LayoutViewModel

指数

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

明白了吗?这是答案:

其中一个有一个;不应该存在的

于 2013-09-18T16:08:48.017 回答
1

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

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

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

@model MyApp.Core.ViewModels.LayoutViewModel

编译。

这对我行得通!

于 2016-05-05T20:39:59.707 回答
-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>>" %>

编译器一直告诉我它期待一个额外的>.

于 2019-02-12T21:05:52.377 回答