我对此感到困惑。我正在使用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