ビューにそのフラグ(ブール値)を通過し、条件付きdisabled
属性
でボタンをレンダリングする必要が複数の方法でブール値を渡すことができます。
ビューモデルをお持ちの場合は、対応するプロパティを設定します。あなたのビューにYourViewModel
と呼ばれるビューモデルがあり、それがブール型のIsEnabled
プロパティを持っていて、そのメソッドをアクションメソッドに設定し、ビューモデルをビューに送信したとします。あなたのアクションメソッド
var vm = new YourViewModel();
var user = context.Users.Where(u => u.Flag == true).FirstOrDefault();
vm.IsEnabled= user != null && user.Flag;
// Pointless because you are getting the one with True;
// So the value will be always true if user is not null
return View(vm);
とビューでそう
、お使いのモデルのIsEnabled
プロパティをチェックし、
@model YourViewModel
@if (Model.IsEnabled)
{
<input type="submit" value="Save" />
}
else
{
<input type="submit" value="Save" disabled="disabled" />
}
それともビューモデルを持っていない場合は/あなたのビューがありますどのクラスにも厳密に型指定されていない場合は、ブール値をページのモデルとして渡すことができます
var user = context.Users.Where(u => u.Flag = true).FirstOrDefault();
var flag= user != null && user.Flag;
// Pointless because you are getting the one with True;
// So the value will be always true if user is not null
return View("Index",flag);
ビューで
@model bool
@if (Model)
{
<input type="submit" value="Save" />
}
else
{
<input type="submit" value="Save" disabled="disabled"/>
}
別のオプションは、表示するために、アクションメソッドからこのブールフラグを転送するViewBagを使用することです。
var user = context.Users.Where(u => u.Flag == true).FirstOrDefault();
ViewBag.IsEnabled = user != null && user.Flag;
// Pointless because you are getting the one with True;
// So the value will be always true if user is not null
return View();
とビューの
@if (ViewBag.IsEnabled !=null && ViewBag.IsEnabled)
{
<input type="submit" value="Save" />
}
else
{
<input type="submit" value="Save" disabled="disabled" />
}
ここで私はあなたのレコードのフラグ値がtrue
である場合にのみ有効になり、ボタンをレンダリングしています。
@IrishChieftainとしてビューのボタンを無効にすることができ
として表示するために、コントローラからフラグ値を渡す
ViewBag
を使用します。 – Davidフラグが真であるユーザーしか取得できない場合、フラグが無効のユーザーをどのように返すのでしょうか? –
@OrelEraki:私はまた、そのコード内の 'userFlag'オブジェクトがどのように' bool'となるのか不思議です... – David