簡體   English   中英

System.InvalidCastException:在ASP.NET MVC部分視圖中

[英]System.InvalidCastException: in ASP.NET MVC partial views

在控制器中:

public ActionResult Index()
{
    ViewData["page"] = 0;
    return View(data);
}

public ActionResult More(long page = 0)
{
    ViewData["page"] = page;
    return View(data);
}

因此,我有兩個視圖:Index.aspx和More.aspx。 我創建了在兩個視圖中都使用的局部視圖(PartialView.ascx)。 在局部視圖中,它訪問了Model和ViewData。 奇怪的是(無論如何對我來說)是,當我嘗試將ViewData [“ page”]強制轉換為一個很長的時間時,對於其中一個視圖,我會得到以下強制轉換異常:

System.InvalidCastException: Specified cast is not valid.

我試圖將ViewData [“ page”]轉換為如下所示:

if ((long) ViewData["page"] > 1) { ... }

long page = (long) ViewData["page"];
if (page > 1) { ... }

它們每個都會在另一個視圖的一個視圖中拋出強制轉換異常(但不能同時出現)。

Index.aspx和More.aspx之間的區別是Index.aspx使用母版頁,而More.aspx不使用母版頁。

有人會提出什么建議嗎? 如果需要提供更多詳細信息,請告訴我。 順便說一句,我是C#和ASP.NET MVC的新手。

這一行:

ViewData["page"] = 0;

將值設置為boxed int 您正嘗試將其拆箱到很long 避免這種情況的最簡單方法是,將框框從很long距離開始:

ViewData["page"] = 0L;

...或將int用作您的頁碼開頭。 (您真的會獲得比int.MaxValue頁面更多的int.MaxValue嗎?)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM