【发布时间】:2018-08-13 18:59:45
【问题描述】:
我发现这个问题与我要问的问题相似,但不完全相同:Is there some way I can "join" the contents of two javascript arrays much like I would do a join in SQL
在那个问题中,用户提供了两个他们想以类似 SQL 的方式加入的数组。
我的不同之处在于我设置了多个 API 来引用数据库。我需要让 API “加入”一个值。
以下是类的粗略示例:
public partial class test_review
{
[Key]
public int rating_id { get; set; }
public int site_id { get; set; }
public string comments { get; set; }
}
和:
public partial class test_site
{
[Key]
public int site_id { get; set; }
[Required]
[StringLength(3)]
public string site_name { get; set; }
}
如果我是用 SQL 写的,我会做类似的事情
SELECT r.rating_id, s.site_name, r.comments
FROM test_review r
INNER JOIN test_site s on r.site_id = s.site_id
目前,我的 ReadReviews.aspx 页面中的代码如下所示:
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
<script src="Scripts/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
function getReviews() {
$.getJSON("api/review",
function (data) {
$('#reviews').empty();
$.each(data, function (key, val) {
var row = '<td>' + val.rating_id + '</td><td>' + val.airport_id + '</td>';
$('<tr/>', { html: row })
.appendTo($('#reviews'));
});
});
}
$(document).ready(getReviews);
</script>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<h2> Here are the API reviews</h2>
<table>
<thead>
<tr>
<th>Rating_id</th>
<th>airport_id</th>
</tr>
</thead>
<tbody id ="reviews">
</tbody>
</table>
</asp:Content>
(注意:这个jquery代码来自https://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/using-web-api-with-aspnet-web-forms)
这很好,但不是我在这种情况下要寻找的。我需要结合来自两个 API 的信息。
创建几个视图会更好吗?我知道我可以做到这一点,但我不确定它是否比直接从表格中提取并以某种方式组合它们更好/更有效/更快。
【问题讨论】:
-
用 C# 合并这两个数据集,然后将数据发送到浏览器。
-
@VDWWD 我会在哪里做呢?我是否需要创建一个新班级才能做到这一点?或者我是否必须以某种方式在 ReadReviews.aspx.cs 页面中执行此操作?
-
这些模型/类是否在单独的解决方案中?如果没有,那么 cpuld 你使用 LINQ 加入 stackoverflow.com/a/26094503/470014 吗?
-
视情况而定,但您可以创建一个新类或从另一个类继承一个。有很多方法可以做到这一点。
标签: c# jquery asp.net webforms asp.net-web-api2