0

私の ASP.NET MVC プロジェクトでは、ユーザーが利用規約に同意しているかどうかを確認するコードを記述する必要があります。私はエンティティフレームワークとデータベースの最初のアプローチを使用しています。Apptermsというテーブルがあり、そこにはTermsAcceptedおよびDateというフィールドがあります。Appterms テーブルには、 GatewayUserIdtermIdなどの他のフィールドもあります 。' GatewayUserID には登録ユーザーの ID があり、termId は主キーです。「Termsaccepted」フィールドはビット タイプです。

この投稿 MVC 3 に投稿されているカスタム属性関数に従おうとしましたが、ユーザーに警告/免責事項画面を表示させるにはどうすればよいですか

現在のユーザーIDを取得するためにこの投稿を使用しています。したがって、この後、0または1を返して、契約条件に同意したかどうかを確認するにはどうすればよいですか.

これは私が使用しようとしているコードスニペットです:

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, 
Inherited = true, AllowMultiple = false)]
public class AcceptedTermsCheck : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
    // Check if AcceptedTC is set to true

    // If set, then do nothing

    // Otherwise redirect to TC page
    }
 }

ここで、ユーザーが条件を受け入れたかどうかを確認するには、true を返す必要があります。つまり、GatewayUserId フィールドの「1」です。そうでない場合は、false を返す必要があります。しかし、これを行う方法がわかりません。また、このタスクを達成するにはセッションを作成する必要があることも知りました。しかし、これまで取り組んだことはありませんでした。

何か助けて?? ありがとう..

4

2 に答える 2

0

これがあなたのやりたいことだと思います。データをポストバックするか、jquery を使用してアクションに投稿し、条件が受け入れられているかどうかを確認してから、送信ボタンを有効にして、ユーザー エクスペリエンスを向上させることができます。どちらの方法を選択しても、このようなことができます。

var dataEntityModel = new YoursEntities();
            AppTerm currentTerm = dataEntityModel.Appterms.ToList().
where(x=>x.GatewayUserId == yourCurrentUserID
&& x.termid == yourTermId).FirstOrDefault();

if(currentTerm.TermsAccepted == true)
{

}
else
{
   RedirectToAction("action","controller");
}
于 2013-08-21T18:21:18.297 に答える
0
userlogin login = db.userlogins.Where(j => j.email == name && j.password == password && j.status == 1)
                               .FirstOrDefault();
于 2016-03-26T15:46:31.330 に答える