9

私は得ています:

タイプ 'ASP._Page_index_cshtml' は 'System.Web.WebPages.WebPage' から継承されません。

index.cshtml ファイルを参照すると。それは非常に簡単です:

@using System.Web.Optimization
@inherits System.Web.Mvc.WebViewPage
<!DOCTYPE html>
<html class="no-js" lang="en">
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width">
    <title>Hello World</title>
    @Styles.Render("~/Content/css", "~/Content/themes/base/css")
    @Scripts.Render("~/bundles/modernizr")
</head>
<body>
    @Scripts.Render(
        "~/bundles/jquery",
        "~/bundles/jqueryui"
    )
</body>
</html>

私の index.cshtml ファイルは Views フォルダーの外にあります。

4

9 に答える 9

2

私はただ削除する必要がありました:@inherits System.Web.Mvc.WebViewPage

プロジェクトを再編成するときにコピー貼り付けエラーが発生したようです。

于 2013-03-24T02:24:55.680 に答える
0

古いバージョンの System.Web.WebPages.dll がメモリに読み込まれ、cshtml ページをその dll の WebPages クラスのバージョンにキャストしようとする可能性があります。

これをテストするには、現在登録されている http モジュールを確認してください。

var allModules = HttpContext.Current.ApplicationInstance.Modules;
for( int i = 0; i < allModules.Count; i++ ) {
    Trace(allModules.GetKey(i));
}

私の場合、それは:

....
__DynamicModule_System.Web.WebPages.WebPageHttpModule, System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35_bca8e05a-5746-45b0-be95-2b920b455ccf

__DynamicModule_System.Web.WebPages.WebPageHttpModule, System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35_c1a67b42-31a9-47f1-8483-9e712fabe2a7

この問題を解決するには、/Bin フォルダー内の System.Web.WebPages.dll の古いバージョン、またはそれを参照している可能性のある他の dll-s を置き換える必要があります。

于 2014-04-15T07:41:10.897 に答える
-1

ビューを直接参照しようとしているのはなぜですか? そして、それがビュー フォルダーにないのはなぜですか?

基本的な「Hello World」ページを表示するには、まず次のようなコントローラーを作成しますHomeController.cs

using System.Web.Mvc;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }
}

次に、ファイル/Views/Home/Index.cshtmlを作成し、その中にマークアップを入れます。以下を追加する必要がある場合もあります。

@{
    Layout = null;
 }

マスターページを使用しているようには見えないため、ページの上部に移動します。

補足として、これはすべて、デフォルトのルーティングに失敗していないことを前提としています。

于 2013-03-24T01:42:42.237 に答える
-4

Views フォルダーから web.config を削除します。

そのフォルダーから Partial1.cshtml を含めているため、そこから web.config も含まれています。そして、その web.config は、すべてのページが WebViewPage から継承する必要があると言っています。

于 2016-06-20T08:54:12.713 に答える