部分视图结果

时间:2015-09-01 12:01:00

标签: asp.net-mvc partial-views asp.net-mvc-partialview

我可以在PartialViewResult()中返回一个视图,如下所示吗?:

public PartialViewResult EditAdminProfile_Post(int Id, FormCollection formCollection)
        {
            //if (Session["AdminID"] != null)
            //{
            Admin admin = new Admin();
            admin = db.Admins.Single(m => m.ID == Id);
            admin.Name = formCollection[0];
            admin.Gender = formCollection[1];
            admin.Email = formCollection[2];
            admin.ContactNumber = formCollection[3];
            admin.AboutMe = formCollection[4];
            if (ModelState.IsValid)
            {
                db.Entry(admin).State = System.Data.Entity.EntityState.Modified;
                db.SaveChanges();
            }
            return PartialView("AdminProfile");

AdminProfile不是局部视图。

2 个答案:

答案 0 :(得分:0)

是的,你可以。但是,我们不建议这样做,因为您的_layout被忽略(这意味着布局中定义了cssscript个文件,因此您的样式和功能可能会有所不同,就像您期望的那样。即使你可以使它工作,你也会看到代码味道

您是否希望将重复使用 AdminProfile作为 部分和普通视图?

  • 使用可重复使用的内容创建部分视图AdminProfilePartial
  • AdminProfile视图中,请在其中调用AdminProfilePartial(即使您使用的只是)

然后当您返回完整视图时:

return View("AdminProfile");

否则部分视图:

return PartialView("AdminProfilePartial");

答案 1 :(得分:0)

问题是你没有将模型传递给局部视图,这就是为什么当你调用它时你得到Null reference

使用以下行更新您的代码:

return PartialView("AdminProfile", admin);

PS而不是使用FormCollection最好使用默认模型绑定器并在操作方法中接受Admin模型