【问题标题】:Path in PartialView method ( to share them between applications)PartialView 方法中的路径(在应用程序之间共享它们)
【发布时间】:2016-07-20 06:23:29
【问题描述】:

我想在一些应用程序之间共享一些局部视图。我尝试了互联网上建议的不同解决方案,但没有一个不起作用! 但我希望通过在PartialView 方法中使用绝对路径或关系路径它可以工作,但我不知道它是否可能。

所以这里有两个问题:

  1. 如果我在我的解决方案中创建一个公共项目作为子域,我可以在其他项目的PartialView 方法中使用它的URL吗?
  2. 如果我在我的解决方案中创建公用文件夹,我会使用类似"~/../Common/myView.cshtml" 的路径。在这种情况下,Visual Studio 在运行时不会在编辑器上对我产生错误我收到一个错误(“不能使用前导 .. 退出顶级目录”)。那么有什么解决方案可以在根目录之外使用公共文件夹的路径吗?

我知道最好将这些问题分成 2 个问题,但由于没有解决方案来分享部分观点,所以我在这里收集它们。

如您所见,我的解决方案中有一个 Common 文件夹,其中包含 _MainMenu.cshtml,并且我在网站项目的共享文件夹中也有这个文件。

我应该如何在 Admin 控制器中编写 PartialView 到它们每个的路径?

我想要一些这样的代码:

对于普通文件夹:

return PartialView("~/../Common/_MainMenu.cshtml");

对于共享文件夹:

return PartialView("http://localhost:16287/Module/Menu/_MainMenu");

【问题讨论】:

  • 请分享一些代码以获得更多理解..
  • 不查看您的代码,疯狂的解决方案是使用 viewEngine 动态创建视图并在任意多个项目中使用它。
  • 我附加了一些代码来显示我的意思
  • 如您所见,Razor 引擎限制了您对视图的访问。它们应该在您的视图文件夹中,并且不能在您的 Web 项目文件夹之外。仅仅因为您不喜欢人们告诉您的内容而对答案投反对票是非常糟糕的礼仪。您不必对正确答案投赞成票,但如果您真诚地得到的答案是准确的,而您投了反对票,人们就会失去帮助您的兴趣。
  • - 关注link 进行上述查询

标签: asp.net-mvc


【解决方案1】:
  1. 不可能。
  2. 不是个好主意。

因为这不是可以编译为 DLL 并且可以通过简单地引用它来使用的代码,所以您最好在应用程序中创建 区域 或复制您的视图。

编辑:可以编译 Razor 视图。但这并没有改变这样一个事实,即如果 Razor 视图路径解析器位于 Web 项目之外,则不能引用任何视图。虚拟路径可以工作。 感谢@DaveAlperovich

【讨论】:

  • 出于某些原因我应该分开项目,我正在寻找一种在应用程序之间共享视图的方法
  • 你问了一个问题,我回答了,是不是错了?只有当答案错误或不相关时,您才应考虑否决。如果是错误的,请提供正确的内容。
  • 是的。你的回答无关紧要。我的问题是“PartialView 方法中的路径”。所以部分视图中设置路径的类型是我的意思。
  • 全部正确,除了 Razor 视图 可以 被编译。但这并没有改变这样一个事实,即如果 Razor 视图路径解析器位于 Web 项目之外,则不能引用任何视图。虚拟路径可以工作。平心而论,这个答案应该重新措辞。
  • @SiamakFerdos,关于您的问题,这个答案是正确的。 Razor Paths 仅适用于 Web 项目文件夹中的文件。不喜欢答案是拒绝投票的坏理由。
猜你喜欢
  • 2011-10-07
  • 2015-11-20
  • 2020-06-08
  • 1970-01-01
  • 2019-07-27
  • 2019-11-14
  • 1970-01-01
  • 2011-03-23
  • 1970-01-01
相关资源
最近更新 更多