私の質問は次のとおりです。これらの 2 つのアクション結果を 1 つに結合するにはどうすればよいですか? 最初の行を 1 行だけにするのは本当に意味がないようです。しかし、抜け道が見えません。どんなアイデアでも大歓迎です。残りは背景用に提供します。
必要なJson結果を含む部分ビューを返すことに成功していますが、これを達成するために同じ名前の2つのActionResults(1つはパラメータなし)を使用しています。この方法を続けると、すべての ActionResults を 2 回繰り返す必要があります。これに関して私が抱えている問題は、最初のアクションの結果が文字通りこれ以上のことをしないことです:
[HttpGet]
public ActionResult MyResults()
{
return PartialView();
}
これは、ビューを返すために使用されます。ビュー内には、JQuery/Ajax があり、同じ名前の別のアクション結果を呼び出しますが、パラメーターがあります。このアクションの結果は Json オブジェクトに効果的に入力され、その後解析され、上のビューにテーブルとしてレンダリングされます。事実上、この actionresult がすべての作業を行います。次のようになります。
[HttpPost]
public ActionResult MyResults(DataTablePrameters param)
{
//Get the full list of data that meets our needs
var fullList = _myResultsRepository.GetListByID(Id);
//Count the records in the set
int count = fullList.Count();
//Shorten the data to that required for the page and put into object array for Json
var result = from r in fullList.Skip(param.iDisplayStart).Take(param.iDisplayLength)
select new object[]
{
r.field1,
r.field2,
r.field3
};
//Return Json data for the Datatable
return Json(new
{
sEcho = param.sEcho,
iTotalRecords = param.iDisplayLength,
iTotalDisplayRecords = count,
aaData = result
});
}
よく知らない人は、私が DI/IOC を使用していることに気付かないでしょう。簡潔にするために、この詳細は含めていません。しかし、それは私の質問ではありません。また、上記のコードは、次のサイトの Datatables を使用しました。
これは実際にはかなり良いです。繰り返しますが、上記のすべてを使用すると、私のコードはうまく機能します。だから私はそれで問題はありません。結果セットを変数にロードしてカウントし、次にスキップ...テイクなどを行うため、やや非効率的であることはわかっていますが、これも機能します。これは私の質問ではありません。
繰り返しになりますが、私の唯一の質問は、どうすればそれらの 2 つを 1 つのビューに結合できるかということです。最初の行を 1 行だけにするのは本当に意味がないようです。しかし、抜け道が見えません。どんなアイデアでも大歓迎です。