1

mvc でフォーラム Web サイトを作成しています。これは Stack Overflow と同じ機能です。任意のディスカッションを表示しますが、RichBox に回答を入力した場合は、ログインする必要があり、回答が作成されます。

だから私[Authorize]はポストアクション結果メソッドの上部で使用しました

これを見る

[Authorize]
        [HttpPost]
        public ActionResult ViewDiscussion(DiscussionModel discussionModel)
        {
        }

動いていない 。ユーザーがログインしていない場合は、返信の投稿(Call Post Method) ボタンをクリックすると、(ユーザーがログインしていないため) ログイン ページに移動し、ユーザーは uname と psswrd を入力してサインインし、ディスカッション ページを表示します。HttpGetメソッドが呼び出されましたが、メソッド呼び出しを投稿したいです!

4

2 に答える 2

0

ディスカッション データを更新する機能が許可されたユーザーのみに許可されている機能である場合、ビュー モデルとビューにコードを追加して、許可されていないユーザーに対して [返信の投稿] ボタンを非表示にします。または、フォームを送信する代わりに、返信を投稿するにはログインする必要があることをユーザーに通知するメッセージを表示する代替ボタンがレンダリングされるように調整します。

あなたの代替手段は、おそらくTempDataユーザーがログインプロセスを通過している間、フォームデータを保持することですが、これはおそらくアーキテクチャ的に面倒なプロセスになるでしょう.

于 2013-05-08T08:18:16.930 に答える
0

簡単に言えば、少なくとも多くの汚いハックがなければ、あなたが求めていることはできません。

理由は簡単です。ユーザーが承認されていない場合、フレームワークはユーザーをログイン ページにリダイレクトしてログインします。これにより、すべての投稿情報が失われます。彼らがログインすると、サーバーからデータを魔法のように投稿することはできません。投稿はクライアントから来なければならないからです。

あなたが得ることができる最も近い方法は、どうにかしてそれらの状態を追跡し、フォームデータをそのまま再作成するページにリダイレクトし、JavaScriptを実行してページを送信することです..非常に面倒でハック的で、簡単に壊れます.

私の意見では、ユーザーがログインしていない場合は、データの再入力を強制する必要があります。または、ユーザーが認証されていない場合に送信するフォーム ページにアクセスできないように、サイトを設計する必要があります。

于 2013-05-08T09:18:24.803 に答える