我试图使用ASP.NET MVC 3和razor视图的可移植视图,因为这似乎是创建一个简单的插件架构的最佳方式.所以我有我的类库设置,我的视图位于/Views/Admin/Index.cshtml中,它被设置为嵌入式资源.然后,我将该项目作为主Web应用程序项目的依赖项.当我尝试访问管理控制器时,我会收到一条无法找到该视图文件的消息(因此正确地包含了控制器).我假设它正在尝试查看主Web应用程序项目而不是可移植区域二进制文件.有没有办法让剃刀视图与便携式区域一起使用?
对于有便携式区域经验的人,
我想知道使用它们是否有缺点以及为什么不使用它们将大型MVC应用程序分解为组件部分.
我喜欢MvcContrib中便携式区域的想法.阅读之后,为实践构建了一对,我很惊讶没有找到过多的开源项目,利用这种简洁的方式在MVC应用程序中分发功能.
作为一个经常搞乱Rails的人,我喜欢我可以为任何事情找到一个插件.(评论,认证,搜索,CMS,记录等)
但是,在搜索便携式区域时,我看到的唯一的是样本和OpenId实现.
对便携式区域的热爱在哪里?
我有一个非常棘手的问题需要我解决,我想了很多,然后又找到了一个我要提到的结论.问题是我有一个希望创建一个基于通用功能的网站,让我们叫它模块,所以我以为是使用MVC的Contrib便携式领域,这是伟大的想法,将模块客户端,但我有一个很大的问题,让我们说我创建了一个Blog模块,它将在他想要的新网站中实现,现在一些用户有独特的要求,比如其中一个需要为每篇文章添加图片库,或者每篇文章中的参考列表.在正常情况下,如果您有一个站点可以工作,这很容易,所以您需要做的就是
但在我的情况下,由于两个原因,它很复杂,而且时间繁琐
这就是为什么作为第一步解决我使用的便携式领域创造附加组件为每个模块,现在这肯定会通过拖动1个DLL为每个新的模块或附加组件减轻我的工作,这个问题,但我在这里有一个小问题,
我们这是特定的模块附加组件的最大问题:)让我们回条画廊插件,如果我按照我已经通过创建它作为一个便携式区域上面提到的逻辑,它会更容易在模块来创建一个功能通过所有已安装附加组件代码回路,并列出它们在CRUD意见,但因为我孤立附加组件,不想手动更新主模块代码由于上述原因会有没有办法做CRUD操作的新的附加组件与主模块同步,因为没有外键关系,再次因为如上所述它可能是可选的,所以我想到了以下解决方案,我希望有一个更好的解决方案
首先,在安装过程中,我创建画廊附加组件一个表,但不是创建一个外键关系,我将创建一个手动外键,这将通过生成的主模块控制器一个唯一的ID,当我通过创建记录获取填充下面的代码然后将它存储在ViewData中,并在创建新记录时将其传递给Addon Controller,
private string GenerateId()
{
long i = 1;
foreach (byte b in Guid.NewGuid().ToByteArray())
{
i *= ((int)b + 1);
}
return string.Format("{0:x}", i - DateTime.Now.Ticks);
}
ViewData["FK"] = GenerateId();
Run Code Online (Sandbox Code Playgroud)
但这是我的担忧
如果我的问题很蹩脚,我感到非常抱歉,但这是最好的问题,我想很多人都希望有这样的功能,希望有人能回答我
你能告诉我这两种实现的优缺点吗?
我的背景:我们有一个包含许多不同域名的大型项目.每个域自然都是一个区域.但是许多不同的团队将在每个团队中工作,我们希望将业务规则分开.在解决方案中管理这些问题的最佳方法是什么?
我在单独的项目或便携式区域看到了很多区域的例子.但我无法做出决定.
在我看来,我的观点是 :
单独的项目
便携式区域
谢谢,
使用MvcContrib可移植区域时,我无法使用强类型视图.
我收到错误消息
'Could not load typeSystem.Web.Mvc.ViewPage<blah>
Run Code Online (Sandbox Code Playgroud)
我尝试使用内置类型来检查我的类型是否有错误.