几个月前,有一个职位需要进行面试前任务评估。我实际上是.NET的新手,所以我通过并决定申请另一份并不需要.net的工作。长话短说。从那以后,解决这个问题的想法让我感到困扰,让我感到困扰的是,我能够真正接近解决方案并且没有真正完成它。
所以,如果有人想在这里练习他们的.net / webapi2 / angular技能,那就是: screenshot
当我几乎完成这项任务时,我得到了一个奇怪的错误(NULL值)
My Homecontroller.cs
namespace KLab.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Title = "Home Page";
return View();
}
public JsonResult GetSections()
{
var db = new KLabDBEntities();
var samples = db.Samples.Include("User").Include("Status").ToList();
return Json(samples, JsonRequestBehavior.AllowGet);
}
}
}
由于这是WEb API,我已将角度代码更改为以下内容: 我的App.js
var myApp = angular.module('myApp', []);
myApp.controller('maincontroller', function ($scope, SampleService) {
getSamples();
function getSamples() {
SampleService.getSamples()
.success(function (Samples) {
$scope.Samples = Samples;
});
}
});
我的service.js
myApp.factory('SampleService', ['$http', function ($http) {
var urlBase = 'http://localhost:35656/api';
var SampleService = {};
SampleService.getSamples = function () {
return $http.get(urlBase + '/Samples');
};
return SampleService;
}]);
我的index.cshtml
<h2>Samples</h2>
<div ng-controller="maincontroller">
<table class="table">
<tr>
<th>Samples Id </th>
<th>Code Number</th>
<th>Date </th>
<th>User Id </th>
<th>Status Id </th>
</tr>
<tr ng-repeat="Sample in Samples">
<td>{{Sample.SampleId}} </td>
<td>{{Sample.CodeNumber}} </td>
<td>{{Sample.Date.replace('/Date(','').replace(')/','') | date:"MM/dd/yyyy"}} </td>
<td>{{Sample.UserId}}</td>
<td>{{Sample.StatusId}}</td>
</tr>
</table>
</div>
其他所有内容都是Visual Studio中的WeBAPI2模板的默认设置。 所以我的模型是由实体框架生成的:
当我建立时,我得到:
Samples Id CodeNumber Date UserId StatusId
data data data 1 6
data data data 2 4
我的目标是将这些ID号更改为表的实际数据,它们是外键值
我在该列中没有得到任何值,当我调用JSON时,我得到了:
[{"SampleId":1,"CodeNumber":129076,"Date":"2015-01-02T00:00:00","UserId":6,"StatusId":3,"Status":null,"User":null},
{"SampleId":2,"CodeNumber":850314,"Date":"2015-06-15T00:00:00","UserId":7,"StatusId":3,"Status":null,"User":null},
{"SampleId":3,"CodeNumber":176033,"Date":"2015-07-31T00:00:00","UserId":7,"StatusId":0,"Status":null,"User":null},
{"SampleId":4,"CodeNumber":129629,"Date":"2015-01-21T00:00:00","UserId":3,"StatusId":0,"Status":null,"User":null},"
这是奇怪的,状态和用户是 null
有人建议这个&#34;加入&#34;必须在数据库本身的视图中完成,然后应该使用angular调用。像SQL视图或使用LINQ。不幸的是,我不知道LINQ,但我知道SQL我想我可以创建一个包含所有表的视图。因此问题是。如何将这些ID值替换为与这些外键相关的实际数据(userid,statusid)?
以下是批量数据的屏幕截图: