我有以下代码:
public PartialViewResult studentsDiv(int? id)
{
if (id == null)
{
id = ViewBag.studentId;
}
else
{
ViewBag.studentId = id;
}
ACD_UNI_STUDENTS students = db.ACD_UNI_STUDENTS.Find(id);
return PartialView(students);
}
public PartialViewResult personalStudentDetails()
{
int? id = int.Parse(ViewBag.studentId);
ACD_UNI_STUDENTS students = db.ACD_UNI_STUDENTS.Find(id);
return PartialView(students);
}
但它抛出异常,int? id = int.Parse(ViewBag.studentId);
表示我的viewbag为null。但这实际上不是null,因为在我的studentsDiv动作中它还是第一次出现。当我调试id时,例如1,但在我的personalStudentDetails上,此ViewBag始终为null
这是我的看法:
@Ajax.ActionLink("Full details", "studentsDiv", new
{
}, new AjaxOptions()
{
HttpMethod = "GET",
UpdateTargetId = "studentsDiv",
InsertionMode = InsertionMode.Replace
}, new { @class = "sactive", id = Model.ID })
|
@Ajax.ActionLink("Partial details", "personalStudentDetails", new
{
}, new AjaxOptions()
{
HttpMethod = "GET",
UpdateTargetId = "studentsDiv",
InsertionMode = InsertionMode.Replace
}, new { @class = "sactive", id = Model.ID })
更改您的ActionLink()方法,以将id
route参数作为路由参数传递给您的方法(用于的同上personalStudentDetails
)
@Ajax.ActionLink("Full details", "studentsDiv",
new { id = Model.ID },
new AjaxOptions()
{
HttpMethod = "GET",
UpdateTargetId = "studentsDiv",
InsertionMode = InsertionMode.Replace
},
new { @class = "sactive" }) // assume you don't really need an id attribute
然后方法就可以了(假设ID属性不可为空)
public PartialViewResult studentsDiv(int id)
{
ACD_UNI_STUDENTS students = db.ACD_UNI_STUDENTS.Find(id);
return PartialView(students);
}
public PartialViewResult personalStudentDetails(int id)
{
ACD_UNI_STUDENTS students = db.ACD_UNI_STUDENTS.Find(id);
return PartialView(students);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句