有没有办法将这些缩小为一组结果?我有一组这样的页面,它们只返回静态内容,我认为必须有一种更有效的方法来做到这一点。
public ActionResult Research()
{
return View();
}
public ActionResult Facility()
{
return View();
}
public ActionResult Contact()
{
return View();
}
编辑:感谢所有回复:)
最佳答案
您可以创建一个带有viewName
参数的共享操作方法:
public ActionResult Show(string viewName)
{
return View(viewName);
}
然后您可以将这些名称路由到此操作:
routes.MapRoute(
"Simple Content",
"/{viewName}",
new { controller = "Something", action = "Show" },
new { viewName = "Research|Facility|Contact" }
);
需要 viewName
约束来防止此路由匹配任意 URL。
注意这是一个信息泄露漏洞;攻击者可以请求 /ControllerName/Show?viewName=~/Views/Secret/View
。
如果您有任何不使用模型的 secret View ,您应该在操作中验证 viewName
。
为此,您可以使用枚举,如 dknaack's answer .
关于c# - 我可以简化此返回 View 的代码吗?显得很多余,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8719064/