2016-07-19 7 views
0

これは重複するタイトルかもしれませんが、私は別の質問があります。私はこのコード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(); 
    } 

今私の質問は、2つ(2)部分的なビューを返すことが可能である必要があり?。 私は部分ビュー(1,2,3,4)を4つ持っており、特定のボタンを無効にするために従業員log.inのビュー1とビュー4を複製しています。たとえば、従業員はlog.inビューで1と4は私のelseコードで返されます。 可能であればどのように?ありがとう。

+0

詳しい情報が必要。あなたのコードは現在、ロールに基づいて部分ビューを返しています。何をしたいですか? –

+0

@StaffordWilliamsごめんなさい。私は部分ビュー(1、2、3、4)を4つ持っており、同じパーシャルビューを作成しました。従業員がlog.inの場合、部分ビュー1と4ではなく、特定のボタンが無効になります。これまでのところ、私は1つの部分的なビューを返すだけです。 –

+0

質問を編集してこの追加情報を含めることをお勧めします。クイックアンサーははいです。条件付きチェックに基づいて異なる部分ビューを返すことはできますが、あなたの質問はまだあまりにもあいまいではありません。 –

答えて

1

たとえば、従業員はlog.inビュー1と4は私の elseコードに戻ります。可能であればどのように?

他の2つの部分表示を含む別のコンテナ部分図を作成することができます。あなたはこれらのビューのいずれかのボタンを無効にしたい場合は、あなたがブール値を追加することができます

return PartialView("LoggedInUserView.cshtml"); 

LoggedInUserView.cshtml

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

は、今すぐあなたのelse条件に、あなたは、このビューを返すことができます。プロパティをビューモデルに追加し、アクションメソッドの値を設定し、それを使用して無効/有効化ボタンを条件付きで表示します。

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

申し訳ありません。私はasp mvcから始めています。アクションメソッドではどのように/どこでそのコードを使うべきですか? –

+0

私の答えに書かれています。 – Shyju

+0

ActionResultに入れた場合、到達不能コードが検出されました –

関連する問題