我對此感到困惑。我正在使用MVC 3的剃鬚刀,並且對於一個操作的一個視圖我有問題。即使它在那裏,也找不到視圖,它不是查找正確的擴展名
[HttpGet]
[ActionName("Unsubscribe")]
public ActionResult UnsubscribeGet(string maskedId)
{
return View("Unsubscribe", maskedId);
}
Unsubscribe.cshtml視圖位於正確的視圖文件夾中。
這條路線是
routes.MapRoute(
"", // Route name
"Unsubscribe/{maskedId}", // URL with parameters
new { controller = "Account", action = "Unsubscribe" });
當去到以下網址「/取消/ db94fddb」,動作大火,然後顯示在下面的錯誤當它試圖找到該視圖。
未找到'取消訂閱'或其主人的視圖或沒有視圖引擎支持搜索到的位置。以下地點搜索:
〜/查看/帳號/ Unsubscribe.aspx
〜/查看/帳號/ Unsubscribe.ascx
〜/查看/共享/ Unsubscribe.aspx
〜/查看/共享/ Unsubscribe.ascx
〜/查看/帳戶/ db94fddb.master
〜/查看/共享/ db94fddb.master
〜/查看/帳戶/ db94fddb.cshtml
〜/查看/帳戶/ db94fddb.vbhtml
〜/查看/ Shared/db94fddb.cshtml
〜/ Views/Shared/db94fddb.vbhtml
注意尋找退訂時尋找db94fddb
時,這僅與這種觀點發生了,完全就如何解決它受損失,它看起來並不爲CSHTML擴展,但確實。
**編輯**
發現了它,
我用System.String作爲模型。由於某種原因導致它炸燬。
我把它換到@model UnsubscribeViewModel
[HttpGet]
[ActionName("Unsubscribe")]
public ActionResult UnsubscribeGet(string maskedId)
{
return View("Unsubscribe", new UnsubscribeViewModel { MaskedId = maskedId });
}
雖然這現在工作我仍然不知道爲什麼沒有工作之前。我將我的視圖設置爲在編譯時進行編譯,因此沒有編譯器錯誤。
我很想知道這裏發生了什麼。
甚至沒有考慮過載。感謝上帝在4中的命名參數。謝謝你的答案! – 2012-04-28 03:29:12
感謝上帝爲這個答案。這個問題讓我瘋狂。 – 5arx 2016-06-07 14:21:15