在mvc3

时间:2016-07-19 00:42:45

标签: asp.net-mvc asp.net-mvc-3

这可能是一个重复的标题,但我有一个不同的问题。我有这个代码

 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();
    }

现在我的问题是可以返回两(2)个局部视图吗? 我有四个局部视图(1,2,3,4),我复制了员工log.in的视图1和4以禁用某个按钮。例如,员工将登录视图1和4将返回我的其他代码。 如果可能怎么样?感谢。

1 个答案:

答案 0 :(得分:1)

  

例如,员工将登录视图1和4将返回我的   别的代码。如果可能的话怎么办?

您可以创建另一个容器局部视图,其中包含其他2个部分视图。

LoggedInUserView.cshtml

@Html.Partial("_FieldAssignment")
@Html.Partial("_FieldAssignmentForEmployee")

现在处于您的其他情况,您可以返回此视图

return PartialView("LoggedInUserView.cshtml");

如果要在任何这些视图中禁用按钮,可以在视图模型中添加布尔属性,并在操作方法中设置值,并使用该属性有条件地显示禁用/启用按钮

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" /> 
 }
}