我正在尝试重载 MVC 操作,但由于“重载”不适用于路由操作(错误 500 表示方法不明确,我猜是因为无法从浏览器强类型化参数),所以我想我只会将一个操作返回给另一个操作因为我也不能将 RedirectToAction 用于 HttpPost。问题是它试图找到一个具有新操作名称的视图,而不是我试图调用的 aciton。这是我正在尝试做的事情:
[HttpPost]
public ActionResult DetailForProductID(int productID)
{
return Detail(new[] { GetProductById(productID) });
}
[HttpPost]
public ActionResult Detail(IEnumerable<Product> products)
{
....
return View(productViewModel);
}
这是我得到的错误:
The view 'DetailForProductID' or its master was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Products/DetailForProductID.aspx
~/Views/Products/DetailForProductID.ascx
~/Views/Shared/DetailForProductID.aspx
~/Views/Shared/DetailForProductID.ascx
~/Views/Products/DetailForProductID.cshtml
~/Views/Products/DetailForProductID.vbhtml
~/Views/Shared/DetailForProductID.cshtml
~/Views/Shared/DetailForProductID.vbhtml
处理这个问题的最健壮和优雅的方法是什么?我不想将内容存储在临时会话中或执行 RedirectToAction,因为我应该能够在服务器端完成所有操作。任何帮助或建议将不胜感激。