0
私はJQuery DataTablesとAJAXを使用しています。プライマリキーで接続されているセカンダリテーブルからフィールドを取得するのが難しいです。私が見ることができるのは主キーだけです。この場合はconcern_idです。Datatables AJAX結合テーブルからフィールドを取得
モデル:質問
public int question_id { get; set; }
public int concern_id { get; set; }
public string question_text { get; set; }
public string question_answer { get; set; }
モデル:懸念
public int concern_id { get; set; }
public string concern_desc { get; set; }
私はconcern_descを表示できるようにしたいと思います。データ型でAJAXを使用しないと、必要なフィールドを簡単に取得できます。
例:
@Html.DisplayNameFor(model => model.concern.concern_desc)
コントローラー:
public JsonResult GetQuestionRecord()
{
bool proxyCreation = db.Configuration.ProxyCreationEnabled;
try
{
db.Configuration.ProxyCreationEnabled = false;
var list = (from q in db.questions
join c in db.concerns on q.concern_id equals c.concern_id
select q).ToList();
return Json(list, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return Json(ex.Message);
}
finally
{
db.Configuration.ProxyCreationEnabled = proxyCreation;
}
}
ビュー:
<table id="DataTable" class="display" style="width:100%">
<thead>
<tr>
<th>ConcernID</th>
<th>QuestionText</th>
</tr>
</thead>
<tbody></tbody>
はJavaScript:
$(document).ready(function() {
GetQuestionRecord();
});
var GetQuestionRecord = function() {
$.ajax({
type: "Get",
url: '@Url.Action("GetQuestionRecord","questions")',
success: function (response) {
BindDataTable(response);
}
});
}
var BindDataTable = function (response) {
$("#DataTable").DataTable({
"aaData": response,
"aoColumns": [
{ "mData": "concern_id" },
{ "mData": "question_text" },
]
});
}
"concern_desc"を表示するために、 "mData:concern_id"をどのように変更しますか?私が試した:
{ "mData": "concern_desc" }
そして
{ "mData": "concern.concern_desc" }
復帰したいプロパティを含む匿名オブジェクト - '{concern_desc = c.concern_desc、QUESTION_TEXT = q.question_text}新しいを選択し'してからスクリプト '{ "MDATA" で: "concern_desc"} ' –
@StephenMueckeありがとうございました。 – Jay