在 mvc3 中调用局部视图
Calling a partial view in mvc3
这可能是一个重复的标题,但我有一个不同的问题。我有这个代码
public ActionResult _FieldAssignmentView()
{
Shift shift = new Shift();
Person person = new Person();
Signatory sig = new Signatory();
ViewBag.ShiftId = new SelectList(db.Shifts, "ShiftId", "ShiftDesc", shift.ShiftId);
var empid = (from p in db.People join s1 in db.Employees on p.PersonId equals s1.PersonId select new { CompleteName = p.CompleteName, s1.EmployeeId });
ViewBag.EmployeeID = new SelectList(empid, "EmployeeId", "CompleteName", null).OrderBy(m => m.Text);
if (Roles.IsUserInRole(User.Identity.Name, "divisionhead") && Roles.IsUserInRole(User.Identity.Name, "director"))
{
return PartialView("_FieldAssignment");
}
else
{
return PartialView("_FieldAssignmentForEmployee");
}
// return View();
}
现在我的问题是 return 两(2)个局部视图是可能的吗?。
我有四个部分视图 (1,2,3,4),我为员工 log.in 复制视图 1 和 4 以禁用某个按钮。例如,员工将 log.in 在我的其他代码中查看 1,而 4 将 return。
如果可能怎么办?谢谢
For example the employee will log.in view 1 and 4 will return in my
else code. If possible how?
您可以创建另一个包含其他 2 个局部视图的容器局部视图。
LoggedInUserView.cshtml
@Html.Partial("_FieldAssignment")
@Html.Partial("_FieldAssignmentForEmployee")
现在在你的其他条件下,你可以return这个视图
return PartialView("LoggedInUserView.cshtml");
如果你想禁用这些视图中的任何一个按钮,你可以添加一个布尔值 属性 到你的视图模型并在你的操作方法中设置值并使用它有条件地显示 disabled/enabled 按钮
public class FieldAssignmentViewModel
{
public bool IsAllowedToAssign {set;get;}
}
并且在您的操作方法中,
var vm = new FieldAssignmentViewModel();
vm.IsAllowedToAssign = true; // Set this value based on your custom condition.
return View(vm);
现在,您传递此对象的视图应该是我们视图模型的强类型。
_FieldAssignment.cshtml
@model FieldAssignmentViewModel
@using(Html.BeginForm())
{
@if(Model.IsAllowedToAssign)
{
<input type="submit" value="Assign" />
}
else
{
<input type="button" disabled value="Assign" />
}
}
这可能是一个重复的标题,但我有一个不同的问题。我有这个代码
public ActionResult _FieldAssignmentView()
{
Shift shift = new Shift();
Person person = new Person();
Signatory sig = new Signatory();
ViewBag.ShiftId = new SelectList(db.Shifts, "ShiftId", "ShiftDesc", shift.ShiftId);
var empid = (from p in db.People join s1 in db.Employees on p.PersonId equals s1.PersonId select new { CompleteName = p.CompleteName, s1.EmployeeId });
ViewBag.EmployeeID = new SelectList(empid, "EmployeeId", "CompleteName", null).OrderBy(m => m.Text);
if (Roles.IsUserInRole(User.Identity.Name, "divisionhead") && Roles.IsUserInRole(User.Identity.Name, "director"))
{
return PartialView("_FieldAssignment");
}
else
{
return PartialView("_FieldAssignmentForEmployee");
}
// return View();
}
现在我的问题是 return 两(2)个局部视图是可能的吗?。 我有四个部分视图 (1,2,3,4),我为员工 log.in 复制视图 1 和 4 以禁用某个按钮。例如,员工将 log.in 在我的其他代码中查看 1,而 4 将 return。 如果可能怎么办?谢谢
For example the employee will log.in view 1 and 4 will return in my else code. If possible how?
您可以创建另一个包含其他 2 个局部视图的容器局部视图。
LoggedInUserView.cshtml
@Html.Partial("_FieldAssignment")
@Html.Partial("_FieldAssignmentForEmployee")
现在在你的其他条件下,你可以return这个视图
return PartialView("LoggedInUserView.cshtml");
如果你想禁用这些视图中的任何一个按钮,你可以添加一个布尔值 属性 到你的视图模型并在你的操作方法中设置值并使用它有条件地显示 disabled/enabled 按钮
public class FieldAssignmentViewModel
{
public bool IsAllowedToAssign {set;get;}
}
并且在您的操作方法中,
var vm = new FieldAssignmentViewModel();
vm.IsAllowedToAssign = true; // Set this value based on your custom condition.
return View(vm);
现在,您传递此对象的视图应该是我们视图模型的强类型。
_FieldAssignment.cshtml
@model FieldAssignmentViewModel
@using(Html.BeginForm())
{
@if(Model.IsAllowedToAssign)
{
<input type="submit" value="Assign" />
}
else
{
<input type="button" disabled value="Assign" />
}
}