Asp.net mvc 用作视图名称的查询字符串参数

Asp.net mvc 用作视图名称的查询字符串参数,asp.net-mvc,asp.net-mvc-5,Asp.net Mvc,Asp.net Mvc 5,我有一些这样的代码 public ActionResult BookNav(string activeId) { return PartialView(activeId); } 并尝试对该操作进行Ajax调用。我使用 @Url.Action("BookNav", "Home", new { activeId = "navHome" }) 这将生成URL 我在回调过程中得到一个HTTP 500。为了简化问题,我在浏览器中打开了一个新选项卡,并粘贴到该URL中。结果是: The par

我有一些这样的代码

public ActionResult BookNav(string activeId)
{
    return PartialView(activeId);
}
并尝试对该操作进行Ajax调用。我使用

@Url.Action("BookNav", "Home", new { activeId = "navHome" })
这将生成URL

我在回调过程中得到一个HTTP 500。为了简化问题,我在浏览器中打开了一个新选项卡,并粘贴到该URL中。结果是:

The partial view 'navBios' was not found or no view engine supports the searched locations. The following locations were searched:
~/Views/Home/navBios.aspx
~/Views/Home/navBios.ascx
...
但是,如果我粘贴的URL没有查询字符串参数

我得到了预期的输出


为什么使用我的查询字符串中的值来选择视图名称,以及如何修复它?

将字符串传递给
返回PartialView()
,该视图使用期望视图名称(a
字符串
)的重载作为其参数。您需要将参数作为对象传递

public ActionResult BookNav(string activeId)
{
    return PartialView((object)activeId);
}

将字符串传递给
return PartialView()
,该视图使用期望视图名称(字符串
作为其参数)的重载。您需要将参数作为对象传递

public ActionResult BookNav(string activeId)
{
    return PartialView((object)activeId);
}

哦!我被这样一个想法所困扰,即BookNav本身并没有被找到,而不是视图。谢谢哦!我被这样一个想法所困扰,即BookNav本身并没有被找到,而不是视图。谢谢