我知道我的问题是什么,但不知道如何解决它,所以我希望这里的天才可以提供帮助。我有一个控制器,我想从 url 中获取一条信息,然后重定向到该站点。我的控制器做了这件事并返回视图,但视图中有一部分并且视图引擎找不到它?
所以这里是设置。
控制器映射路由为:
//marketing/tracking
routes.MapRoute("CampaignTracking",
"{save}/{campaignid}",
new { controller = "CampaignTracking", action = "Index" });
这很好用。所以接下来我的控制器:
public ActionResult Index(Int32 campaignID)
{
var model = new ...snip...
return View("../Customer/Login", model);
}
现在我最初收到错误找不到视图,因为它正在查看 CampaignTracking 文件夹,我有:
return View("Customer/Login", model);
所以我用 ../ 改变了它,如上所示,以到达正确的位置。现在它找到了 Login.cshtml,但在 login.cshtml 中它呈现了一个部分,并且它再次在 Campaigntracking 中寻找部分。
我可以取消 CampaignTracking 控制器并将操作结果移动到 CustomerController,但更愿意将其保留在自己的控制器中,因为这可能会增长并且不会真正分组在客户之下。
根据 nicu Janga
我在控制器中进行了更改:
return View(@"~/Views/Customer/Login.cshtml", model);
在我的 login.cshtml 中,部分内容:
@Html.Partial(@"~/Views/Customer/...etc.cshtml")
但我想知道为什么。我可以理解视图引擎是如何从控制器中出来的,但是一旦用 return View(@"~/Views/Customer/Login.cshtml", model); 正确的路径不应该也传播到 login.cshtml 吗?
显然不是,但我不明白什么?