我正在用实体框架做一个大学项目,而且我正在做一些JOIN&。我做得很好,直到我加入这个我不知道该怎么做的事。 简化我必须实现的功能:我有一个按钮,当我点击它时,它必须显示表格中的所有信息,这就是为什么我需要创建JOIN,我创建了一个为此目的的模型。
这是我的SQL数据库的屏幕截图: SQL Database
这是我需要将MetaEspecifica JOIN放在哪里的代码 外键来自AreaProcesso:
// GET: AreaProcesso/Details/5
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var item = (from ap in db.AreaProcesso
join mg in db.MetaGenerica on ap.IdAreaProcesso equals mg.IdMetaGenerica
join model in db.Modelo on ap.IdAreaProcesso equals model.IdModelo
from nc in db.NivelCapacidade
from c in db.Categoria
from me in db.MetaEspecifica
where ap.IdAreaProcesso == id.Value
select new AreaProcessoModelView()
{
SiglaMetaGenerica = mg.Sigla,
NomeMetaGenerica = mg.Nome,
DescricaoMetaGenerica = mg.Descricao,
Sigla = ap.Sigla,
Nome = ap.Nome,
Descricao = ap.Descricao,
SiglaModelo = model.Sigla,
NomeModelo = model.Nome,
DescricaoModelo = model.Descricao,
SiglaNivelCapacidade = nc.Sigla,
NomeNivelCapacidade = nc.Nome,
DescricaoNivelCapacidade = nc.Descricao,
NomeCategoria = c.Nome
}).FirstOrDefault();
if (item == null)
{
return HttpNotFound(); // Or a return a view with message "item not found"
}
return View(item);
}
答案 0 :(得分:0)
如果您需要包含JSON的HTML页面,请在查看页面下使用此部分
@section Scripts {
var jsonData= @Html.Raw(Json.Encode(Model.YourDataCollection));
}
如果您只需要浏览器中的JSON数据,请更改您的控制器并返回Json,如下所示:
return Json(item, JsonRequestBehavior.AllowGet);
小心如果使用return Json你说MVC这不是视图页面而只是数据序列化页面
要查看Details.cshtml文件不需要模型,只有在设计页面布局后才在脚本部分添加此脚本
@section Scripts {
$.ajax({
dataType: 'json',
url: '@Url.Action("Details")',
type: 'GET',
cache: false,
success: function(result) {
// use json result
}
});
}