查询字符串参数用作视图名称

时间:2016-12-09 01:30:54

标签: 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://localhost:7268/Home/BookNav?activeId=navBios

我在回调期间获得了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

  

http://localhost:7268/Home/BookNav

我得到了预期的输出。

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

1 个答案:

答案 0 :(得分:2)

您将字符串传递给return PartialView(),该string使用需要视图名称(public ActionResult BookNav(string activeId) { return PartialView((object)activeId); } )作为参数的重载。您需要将参数作为对象传递

cat exampleimage.tgz | docker import - exampleimagelocal