gpt4 book ai didi

c# - 如何为多个分部 View 重用一个 Controller ?

转载 作者:太空宇宙 更新时间:2023-11-03 15:49:13 25 4
gpt4 key购买 nike

我想根据发送到 Controller 的内容动态选择局部 View ,并管理它,但我觉得我 a) 过于复杂,b) 不确定如何轻松获取所有页面链接。每个将依次解决。以下如有错误请忽略,全凭内存!在家里一切正常,我正在澄清是否有更好的方法!

首先,我做了什么:

我有一个 Controller :

private Dictionary<int, string> pagesForFolder = new Dictionary<int, string>() {
... here I have my list of pages (index and pagename pairs)
}

public ActionResult Test(int id = -1)
{
try {
string pageName = "";
var result = pagesForFolder.TryGetValue(id, out pageName);
if(result)
string directiory = "~Views/folderA/_" + pageName +".cshtml";
return PartialView(directory);
}
catch(Exception ex) { ... }
return View();
}

然后在文件夹 A 中,我有我网站该部分的所有部分 View 。我有很多部分,每个部分有 1 个 Controller 。但是,我认为这不会很好地扩展,因为每次添加页面时我都必须继续重建。将页面存储在数据库中会更好吗?

最佳答案

我认为你目前的做法是相当合理的。我认为您提到的问题是,无论何时向字典添加或删除新条目,都必须重建您的应用程序。

作为解决方案,您可以将页面名称存储在数据库中,并在需要时检索。

与其使用硬编码的字典,不如试试这样的东西......

在你的 Controller 中..

public ActionResult Test(int id = -1)
{
try {
string pageName = GetYourPageFromDB(id);

if(!string.IsNullOrEmpty(pageName))
string directiory = "~Views/folderA/_" + pageName +".cshtml";
return PartialView(directory);
}
catch(Exception ex) { ... }
return View();
}

这可能不是确切的答案尝试这样的事情...

关于c# - 如何为多个分部 View 重用一个 Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26603640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com