1

わかりましたので、ASP.NET MVC 3 プロジェクトで作業しています。初めて C# ASP.NET を学び始めたとき、コントローラー アクション用に厳密に型指定されたビューを作成しました。ただし、そのモデル (ビューが強く型付けされたモデル) はもう必要ないことに気付きました。どうすればモデルを削除できますか? プロジェクトから除外しようとしましたが、VS2010 でプロジェクトをコンパイルすると、The page not found. VS2010 で強く型付けされた部分を元に戻し、ビューに保持して表示できる方法はありますか?

編集:

@using IntraNet.Areas.Roc.Models.ViewModels; @* This is for SiteLookupVM *@
@{ Layout = "~/Views/Shared/_LayoutIntranet.cshtml"; }

<div id="mdPageHdr">FindnSave Metrics</div>
@Html.Partial("_PartialSiteLookup", (SiteLookupVm) ViewBag.SiteLookup)




@if (ViewBag.SiteId > 0)
{   @Html.ActionLink("Bounce Metrics", "BounceMetrics", "Metrics",new { siteId =     @ViewBag.SiteId }, null)
@Html.Partial("_PartialChartDisplay")
}
else
{ 
<div id="tabsWrapper">
<ul id="tabs_menu">
<li>@Html.ActionLink("Page Loads", "Index", null, new { id = "active" })</li>
<li>@Html.ActionLink("Metrics Data", "DashMetrics")</li>
</ul>
</div>

<div id='dashboard'>

    @Html.Partial("_partialMetricsDashboard")
    </div>

 }

アクション

protected MetricsDashboardRepository _mdr = new MetricsDashboardRepository();
private LoadHistoryDBEntities db = new LoadHistoryDBEntities();
private AvailabilityContext context = new AvailabilityContext();

public ActionResult Index(int? SiteId)
    {
        SiteLookupVm SiteLookup = new SiteLookupVm();
        SiteLookup.ActionName = "Index";
        SiteLookup.ControllerName = "Metrics";
        ViewBag.SiteLookup = SiteLookup;
        ViewBag.Title = "FNS Metrics";

        if (SiteId != null && SiteId > 0)
        {
            string site = new WPDE().Sites.Where(r => r.SiteId == SiteId).Select(r => r.Name).FirstOrDefault();
            SiteLookup.CurrentSite = site == null ? "Site does not exist" : site;
            ViewBag.SiteId = SiteId;
            ViewBag.FnsId = db.fns_sites.Where(f => f.3id == SiteId && f.enabled).Select(s => s.id).FirstOrDefault();
            ViewBag.RegionData = context.Regions.ToList();
            ViewBag.PathData = context.TestPaths.ToList();
        }
        else
        {
            _mdr.DashSetup();
            ViewBag.mdr = _mdr;
            ViewBag.date = 30;
            ViewBag.order = 0;
            ViewBag.totPageView = _mdr.TotPageView();
            ViewBag.totMonthUni = _mdr.TotMonthUni();
        }
        return View();
    }
4

3 に答える 3

3

ビューの上部に、次のようなものが表示されます。

かみそり:

@model YourType

ASPX:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<YourType>" %>

Razor の場合は、その行を削除します。ASPX の場合は<YourType><dynamic>

よろしく

于 2012-07-10T00:15:05.020 に答える
1

以下のアンドレの答えに続いて。ViewModelを「YourType」から「dynamic」に変更することをお勧めします。

これは、強く型付けされたビューを使用しないことを選択した場合にMVCが行うことです。

ASP.NETの場合:

<%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>

Razorでは、ページの上部から「@model」行を削除するだけです。

.NET 4.0動的タイプの詳細については、次を確認してください:動的.NET(MSDN Mag)

于 2012-07-10T00:44:30.667 に答える
1

コンパイルすると、「ページが見つかりません」というエラーが発生すると言われています。これは、単にプロジェクトをコンパイルするだけでなく、プロジェクトを実行してページを参照するときに表示されるブラウザーのエラー メッセージのように思えます。

ブラウザに「ページが見つかりません」というエラーが表示されますか? その場合は、ブラウザーで URL を確認してください。これはおそらく無効な URL です。

のような場合は、ビットをhttp://localhost:12234/View/Blah/Blah.cshtml取り外してみて、何が起こるかを確認してください。/View/Blah/Blah.cshtml

于 2012-07-10T00:53:33.010 に答える