我正在尝试使用Orchard CMS等可插拔架构构建MVC4/MVC5应用程序.所以我有一个MVC应用程序,它将是启动项目并负责身份验证,导航等.然后将有多个模块单独构建为asp.net类库或剥离mvc项目并具有控制器,视图,数据存储库等.
我花了一整天的时间浏览网页上的教程并下载样本等,发现Kenny有最好的例子 - http://kennytordeur.blogspot.in/2012/08/mef-in-aspnet-mvc-4-and -webapi.html
如果我添加对这些DLL的引用,我可以从模块(单独的DLL)导入控制器.但使用MEF背后的原因是能够在运行时添加模块.我希望将DLL和视图复制到启动项目中的〜/ Modules //目录(我已经设法做到了这一点),MEF只是选择它们.努力让MEF加载这些库.
还有MefContrib,如本答案中所解释的ASP.NET MVC 4.0控制器和MEF,如何将这两者结合在一起?这是我即将尝试的下一件事.但我很惊讶MEF没有与MVC一起开箱即用.
有没有人有类似的架构工作(有或没有MefContrib)?最初我甚至想过剥离Orchard CMS并将其用作框架,但它太复杂了.也很高兴在MVC5中开发应用程序以利用WebAPI2.
我对所有模型都附加了doctrine的softdelete行为.有没有办法可以删除特定记录?
在cakephp中我记得分离行为...删除记录然后重新附加行为.
在symfony/doctrine中有类似的东西吗?如果是,那么我该如何分离行为呢?
干杯
我有一个部署到Azure的MVC4项目.捆绑和缩小工作绝对正常.
所有脚本文件都在/ js文件夹中,这些文件夹捆绑在/ scripts/js中
当我使用msdeploy发布到Azure时,我希望只部署捆绑/缩小的脚本文件.我不希望任何人通过猜测网址来访问我的未缩小的脚本.
我理解MVC捆绑在运行时发生,因此它需要非捆绑文件即时创建捆绑包.这可能需要像grunt那样自动化吗?
想知道当你不想发布非捆绑的js时,人们在这种情况下使用的部署策略.
asp.net asp.net-mvc azure asp.net-mvc-4 bundling-and-minification
我已经使用自定义函数和参数实现了角度$资源,如下所示:
.factory('CandidateService', ['$resource', function ($resource) {
return $resource("api/:action/:id", {},
{
'getCandidates': { method: "GET", params: { action: "Candidate" }, isArray: true },
'getCandidate': { method: 'GET', params: { action: "Candidate", id: "@id" } }
});
}]);
Run Code Online (Sandbox Code Playgroud)
我在控制器中使用它如下: -
.controller('Controller', ['CandidateService', function ($scope, CandidateService) {
$scope.candidateList = [];
CandidateService.getAll(function (data) {
$scope.candidateList = data;
});
}]);
Run Code Online (Sandbox Code Playgroud)
这工作绝对正常.现在我需要将来自api的数据缓存到CandidateService Factory中,这样就不会在控制器之间移动eveytime.
所以我想我会做如下事情: -
.factory('CandidateService', ['$resource', function ($resource) {
var Api = $resource("api/:action/:id", {},
{
'getCandidates': { method: "GET", params: { action: "Candidate" }, isArray: …Run Code Online (Sandbox Code Playgroud) 我在AngularJS App中使用bootstrap 3模式作为对话框确认.当我隐藏模态并重定向模态的背景仍然存在.
$scope.delete = function () {
DataService.delete()
.then(function () {
$("#delete").modal("hide");
$location.path("/");
});
}
Run Code Online (Sandbox Code Playgroud)
我试过在隐藏上使用回调
$("#delete").on('hidden.bs.modal', function () {
$location.path("/");
}
Run Code Online (Sandbox Code Playgroud)
但是这种延迟很多.
有一个更好的方法吗?
javascript jquery twitter-bootstrap angularjs twitter-bootstrap-3