我正在使用Ninject和ASP.NET MVC 4.我正在使用存储库并希望进行构造函数注入以将存储库传递给其中一个控制器.
这是我的上下文对象(EntityFramework),它实现了我的StatTracker接口:
public class StatTrackerRepository : IStatTrackerRepository
{
private GolfStatTrackerEntities _ctx;
public StatTrackerRepository(GolfStatTrackerEntities ctx)
{
_ctx = ctx;
}
public IQueryable<Facility> GetFacilites()
{
return _ctx.Facilities;
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的Repository接口:
public interface IStatTrackerRepository
{
IQueryable<Facility> GetFacilites();
}
Run Code Online (Sandbox Code Playgroud)
然后调用我的家庭控制器:
public class HomeController : Controller
{
public IStatTrackerRepository _repo { get; set; }
public HomeController(IStatTrackerRepository repo)
{
_repo = repo;
}
public ActionResult Index()
{
var facilities = _repo.GetFacilites().ToList();
return View(facilities);
}
}
Run Code Online (Sandbox Code Playgroud)
页面加载正确,但是,一旦页面加载,它立即使用angularjs控制器调用$ http方法:
function facilityIndexController($scope, $http) {
$scope.data = []; …Run Code Online (Sandbox Code Playgroud) 我试图通过ajax对我的控制器进行简单的调用.RouteConfig尚未更改并设置为默认值.当我进行ajax调用时,"网络"调试工具中请求的Url是:
'http://localhost:59275/Leaderboard/Leaderboard/GetPosition'
Run Code Online (Sandbox Code Playgroud)
这导致404,因为Controller,Leaderboard被添加到Url中两次.应该是正确的网址
'http://localhost:59275/Leaderboard/GetPosition'
Run Code Online (Sandbox Code Playgroud)
我的ajax电话如下:
$.ajax({
url: 'Leaderboard/GetPosition',
type: "GET",
dataType: 'xml',
success: function (data) {
$('#results').html(data);;
}
});
Run Code Online (Sandbox Code Playgroud)
我的控制器如下:
public class LeaderboardController : Controller
{
[Webmethod]
public static DataTable GetPosition()
{
// do stuff
}
}
Run Code Online (Sandbox Code Playgroud) 如果您有任何想法我将如何枚举对象列表,请告诉我.以下是它的创建方式.由于某种原因,我无法将其转换为List,IList,Enumerable,IEnumerable.我猜它是因为它是如何创建的(由第三方).只是看看是否有人有任何想法.
错误如下:
Unable to cast object of type '<>f__AnonymousType5`1[System.Collections.Generic.List`1[SugarRest.Model.AMP_Product_Line]]' to type 'System.Collections.Generic.List`1[SugarRest.Model.AMP_Product_Line]'.
Run Code Online (Sandbox Code Playgroud)
该对象创建如下:
private static AMP_Contract CreateCrmContract(ContractDetailViewModel model, int bookmanContractNumber, int renewedFromContractNumber)
{
List<AMP_Product_Line> productLines = CreateProductLinesPrint(model, bookmanContractNumber);
//Contract
AMP_Contract ampContract = new AMP_Contract();
...
ampContract.amp_amp_contracts_amp_amp_product_lines = new { productLines };
return ampContract;
}
public class AMP_Contract
{
...
public object amp_amp_contracts_amp_amp_product_lines { get; set; }
...
}
Run Code Online (Sandbox Code Playgroud)
我尝试访问/枚举的对象如下:
我也试过这个,但是,有问题的对象不是可枚举的,因为它是一个对象.