C# 在ASP.NET MVC中列出资源记录
我试图从表中的记录集中列出资源记录。我可以显示所有资源记录,但我需要的是它只显示传递给ActionResult的记录集的资源记录 为了澄清,我有一个记录集视图,其中有一个包含hostedzone中所有记录集的表,当有人单击它旁边的字段时,它会获取该记录集的名称,并将其作为值(字符串应答)传递给ResourceRecords控制器。然后使用它设置C# 在ASP.NET MVC中列出资源记录,c#,asp.net-mvc,C#,Asp.net Mvc,我试图从表中的记录集中列出资源记录。我可以显示所有资源记录,但我需要的是它只显示传递给ActionResult的记录集的资源记录 为了澄清,我有一个记录集视图,其中有一个包含hostedzone中所有记录集的表,当有人单击它旁边的字段时,它会获取该记录集的名称,并将其作为值(字符串应答)传递给ResourceRecords控制器。然后使用它设置StartRecordName。之后,我将MaxItems设置为1。这基本上就是搜索功能。除非有多个资源记录集命名为同一事物,否则它不会列出它们的记录。它
StartRecordName
。之后,我将MaxItems
设置为1。这基本上就是搜索功能。除非有多个资源记录集命名为同一事物,否则它不会列出它们的记录。它只接受第一个资源记录集记录
以下是控制器中的内容:
public ActionResult ResourceRecords(string answer)
{
//create Route 53 Client using the credentials
IAmazonRoute53 route53Client = new AmazonRoute53Client("AccessKey", "SecretKey", RegionEndpoint.USEast1);
// This gives us an object of this type: https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Route53/TListResourceRecordSetsResponse.html
var response = route53Client.ListResourceRecordSets(new ListResourceRecordSetsRequest
{
HostedZoneId = "HostedZoneId",
StartRecordName = answer,//start with the record set from the value passed in ResourceRecordSets.cshtml
MaxItems = "1"
});
//List for RecordSets and Resource Records
List<String> recordSetQuery = new List<String>();
List<String> resourceRecordQuery = new List<String>();
foreach (var recordset in response.ResourceRecordSets)
{
//add the record set name to the List
recordSetQuery.Add(recordset.Name);
foreach (var resourceRecord in recordset.ResourceRecords)
{
if (ModelState.IsValid && !String.IsNullOrWhiteSpace(answer))
if (recordSetQuery.Contains(answer))//find the value in the query(the resource record set List)
{
resourceRecordQuery.Add(resourceRecord.Value);
}
}
}
ViewBag.Test = resourceRecordQuery;
}
return View();
}
公共操作结果资源记录(字符串应答)
{
//使用凭据创建路由53客户端
IAmazonRoute53 Route53客户端=新的AmazonRoute53客户端(“AccessKey”、“SecretKey”、RegionEndpoint.USEast1);
//这为我们提供了一个此类对象:https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Route53/TListResourceRecordSetsResponse.html
var response=route53Client.ListResourceRecordSets(新ListResourceRecordSetsRequest
{
HostedZoneId=“HostedZoneId”,
StartRecordName=answer,//从ResourceRecordSets.cshtml中传递的值中的记录集开始
MaxItems=“1”
});
//记录集和资源记录的列表
List recordSetQuery=new List();
List resourceRecordQuery=新建列表();
foreach(响应中的var记录集。ResourceRecordset)
{
//将记录集名称添加到列表中
recordSetQuery.Add(recordset.Name);
foreach(recordset.ResourceRecords中的var resourceRecord)
{
if(ModelState.IsValid&&!String.IsNullOrWhiteSpace(answer))
if(recordSetQuery.Contains(answer))//在查询(资源记录集列表)中查找值
{
resourceRecordQuery.Add(resourceRecord.Value);
}
}
}
ViewBag.Test=resourceRecordQuery;
}
返回视图();
}
下面是视图中的内容:
<table class="table table-striped table-bordered table-hover table-condensed">
<td colspan="2">Resource Record</td>
@foreach (var Records in ViewBag.Test)
{
<tr>
<td>
@Records
</td>
<td>
<button>Edit</button>
</td>
</tr>
}
</table>
资源记录
@foreach(ViewBag.Test中的var记录)
{
@记录
编辑
}
这是我第一次这样做,所以我还在学习,我可能会让它变得更难,所以任何帮助都会很好。如果我没有发布所需的一切,请让我知道,我会发布它。我不想在文章中大量使用不需要的代码。您需要一个二维数组M x N,其中M是行数(一行是记录),N是列数。当您实际需要列表时,您只得到一行列表。