2

現在、かみそりを使用してMVCで作業していますが、セッション値をモデルに割り当てたい場合、その方法を知っていますか?いくつかの調査を行いましたが、dinは何かを見ました。

パスワード回復を申請している学生のIDを表示し、さらに処理してパスワード回復フォームに表示するために、studentIdをセッションに保存します。

            @Html.LabelFor(m => m.StudentId)
            @Html.DisplayFor(m=> m.StudentId)

セッションをm.StudentIdに割り当てたい場合、とにかくそれを解決できますか?

コントローラー内

Session["StudentId"] = passwordrecovery.StudentId;
4

2 に答える 2

1

私があなたの言うことを正しく理解しているなら、おそらく最良の方法は、セッションで値を保持するのではなく、ビューを返す前にアクションでStudentIdを割り当てるビューモデルを作成することです。次に、ビューモデルをビューに渡し、フォームを作成するときにビュー内のStudentIdにアクセスできるようになります。

// Create a view model that fit your needs
public class PasswordRecoveryViewModel {
    public int StudentId { get; set; }
    // Other properties as needed
}

// Do something like this in your action
public ActionResult YourAction () {
    var model = new PasswordRecoveryViewModel {
        StudentId = 1; // Assign the ID as needed
    }    
    return View(model);
}

次に、ビューの上部に次を追加します。

@Model YourNameSpace.PasswordRecoveryViewModel;

その後、学生証にアクセスできるようになります。@Html.LabelFor(m => m.StudentId)

于 2012-11-14T19:23:38.163 に答える
1

IDをセッションに保存する必要はありません。組み込みのメンバーシッププロバイダー機能を使用して、ユーザーアカウントを管理します。

それを超えて、ビューに必要なものすべてをビューバッグにロードし、データを他の外部ソースに依存しないことをお勧めします。これは、ActionFiltersを使用して、ソース(Sesssionなど)から値を引き出し、それらをViewBagまたはビューモデルに配置することで実行できます。

于 2012-11-14T19:23:49.120 に答える