Asp.net mvc asp.net mvc关系数据未传递到视图
我目前有一个存储库设置,用于加载访问视图控制器操作时用户需要填写的表单。。。我的设置方式如下所示:Asp.net mvc asp.net mvc关系数据未传递到视图,asp.net-mvc,linq-to-sql,Asp.net Mvc,Linq To Sql,我目前有一个存储库设置,用于加载访问视图控制器操作时用户需要填写的表单。。。我的设置方式如下所示: public ActionResult View(long id) { Patient patient = patientRepo.GetPatient(id); if (patient == null) return View("NotFound"); var forms = formRepo.GetFormsFor
public ActionResult View(long id)
{
Patient patient = patientRepo.GetPatient(id);
if (patient == null)
return View("NotFound");
var forms = formRepo.GetFormsForPatient(id);
return View(new PatientViewModel(patient, forms));
}
viewmodel是:
public class PatientViewModel
{
//properties
public Patient Patient { get; set; }
public IQueryable<Form> Forms { get; set; }
//constructor
public PatientViewModel(Patient patient, IQueryable<Form> forms)
{
Patient = patient;
Forms = forms;
}
}
公共类PatientViewModel
{
//性质
公共患者{get;set;}
公共IQueryable表单{get;set;}
//建造师
公共患者视图模型(患者-患者,IQueryable表单)
{
病人=病人;
形式=形式;
}
}
最后,我的forms repo方法如下所示:
public IQueryable<Form> GetFormsForPatient(long id)
{
List<Form> formsReturn = new List<Form>();
var forms = from form in db.Forms
where form.PatientID == id
select form;
foreach (var form in forms)
formsReturn.Add(form);
return formsReturn.AsQueryable();
}
public IQueryable GetFormsForPatient(长id)
{
列表表单返回=新列表();
var forms=来自db.forms中的表单
其中form.PatientID==id
选择表格;
foreach(表单中的var表单)
表单返回。添加(表单);
返回表单return.AsQueryable();
}
问题是,当我尝试循环遍历forms对象并访问forms表的一些关系数据时(forms表保存form和patient之间的关系,还有另一个表保存需要加载的form数据),当我尝试执行以下操作时,会得到一个空引用
<% foreach (var form in Model.Forms)
{ %>
<p>Form: <%= Html.Encode(form.FormTextBank.FormName) %></p>
<p><%= form.FormTextBank.FormText %></p>
<% } %>
表格:
有人能发现任何错误吗?您是否有可能在Linq to Sql中禁用了更改跟踪?我发现,如果是这样的话,关系数据不会自动出现
找到了问题。。。表格中填写不正确的ID将导致无结果患者ID等于参数,是否有任何形式?不再相关…请参见下面Jimmy的答案。在接下来的21小时内无法标记为已回答