如果使用查询字符串,MVC 不会呈现视图
MVC does not render view if querystring is used
我有一个 ASP.NET MVC 网站。我遇到的问题是,如果我添加查询字符串,它无法呈现视图
我的控制器是
public class UpgradeController : Controller
{
public ActionResult Index(string id)
{
return View(id);
}
}
就这么简单
如果我导航到
localhost:123456/upgrade/index
然后 view
按预期在浏览器中呈现。
正如您在 controller
中看到的那样,view
Index
接受一个名为 id
.
的字符串参数
这应该意味着以下 URL 将 return 相同的视图
localhost:123456/upgrade/index/abc
遗憾的是,它没有呈现预期的 view
。相反,我看到
The view 'abc' or its master was not found or no view engine supports the searched locations. The following locations were searched:
以下同理URL
http://localhost:53081/upgrade/index?id=abc
我只有1条路线
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
我完全不明白为什么它会尝试渲染视图并将其视为参数
尝试从此行中删除 id arg
return View(id)
并使用不同的方法将其传递给视图(如果您甚至需要它)。见 https://www.c-sharpcorner.com/UploadFile/abhikumarvatsa/various-ways-to-pass-data-from-controller-to-view-in-mvc/
将字符串值传递给 View 方法显然是出于不同的目的:没有它,视图文件的名称隐含在操作方法的名称中,而有了它,您可以灵活地加载您想要的任何视图想要。
这是我实际做的
public ActionResult Index(string id)
{
return View(model:id);
}
我有一个 ASP.NET MVC 网站。我遇到的问题是,如果我添加查询字符串,它无法呈现视图
我的控制器是
public class UpgradeController : Controller
{
public ActionResult Index(string id)
{
return View(id);
}
}
就这么简单
如果我导航到
localhost:123456/upgrade/index
然后 view
按预期在浏览器中呈现。
正如您在 controller
中看到的那样,view
Index
接受一个名为 id
.
这应该意味着以下 URL 将 return 相同的视图
localhost:123456/upgrade/index/abc
遗憾的是,它没有呈现预期的 view
。相反,我看到
The view 'abc' or its master was not found or no view engine supports the searched locations. The following locations were searched:
以下同理URL
http://localhost:53081/upgrade/index?id=abc
我只有1条路线
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
我完全不明白为什么它会尝试渲染视图并将其视为参数
尝试从此行中删除 id arg
return View(id)
并使用不同的方法将其传递给视图(如果您甚至需要它)。见 https://www.c-sharpcorner.com/UploadFile/abhikumarvatsa/various-ways-to-pass-data-from-controller-to-view-in-mvc/
将字符串值传递给 View 方法显然是出于不同的目的:没有它,视图文件的名称隐含在操作方法的名称中,而有了它,您可以灵活地加载您想要的任何视图想要。
这是我实际做的
public ActionResult Index(string id)
{
return View(model:id);
}