我正在使用 JQuery DataTables 和 AJAX。我很难从通过主键连接的辅助表中获取字段。我唯一能显示的是主键。在这种情况下,关注_id。
型号:问题
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; }
我希望能够显示关注描述。如果我不在数据表中使用 AJAX,我可以轻松获取我需要的字段。
示例:
@Html.DisplayNameFor(model => model.concern.concern_desc)
Controller :
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" },
]
});
}
我应该在“mData:concern_id”中更改什么才能显示“concern_desc”。我尝试过:
{ "mData": "concern_desc" }
还有
{ "mData": "concern.concern_desc" }
最佳答案
第 1 步:将 Controller 中的 LINQ 查询更改为此。
var list = (from q in db.questions
join c in db.concerns on q.concern_id equals c.concern_id
select new
{
question_id = q.question_id,
concern_id = q.concern_id,
question_text = q.question_text,
question_answer = q.question_aswer,
concern_desc = c.concern_desc
}).ToList();
第 2 步:将 BindDataTable JS 代码更改为。
var BindDataTable = function (response) {
$("#DataTable").DataTable({
"aaData": response,
"aoColumns": [
{ "mData": "concern_id" },
{ "mData": "question_text" },
{ "mData": "concern_desc" }
]
});
关于javascript - 数据表 AJAX 从连接表中获取字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45949224/