通常、あなたは何らかのIDを「詳細」アクションにのみ送信します。リンクは/ products/details/15のようになり、ID 17の製品の詳細を表示します。詳細アクションはIDをキーとして使用して必要なデータをフェッチします(データベースやセッションなど)。
ただし、これはそれらの線に沿って、自動的に実現するために、独自のModelBinderを作成することができます。
public class MyModelBinder : IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var val = bindingContext.ValueProvider.GetValue("id");
var id = int.Parse(val.AttemptedValue);
return LoadFromDatabase(id);
}
}
だからあなたのアクションは次のようになります。
public ViewResult Details(MyModel model)
{
return View();
}
私の問題は、インデックスページが読み込まれ、ページにアクセスするユーザーアカウントに基づいて 'usertype'が計算されるまでフィールドの1つが不明であることです。 'usertype'は可変性のためデータベースに格納されません。 – messedupfir
それをセッションに保存することができます。固定キーまたは動的に作成されたキーのいずれかで、詳細アクションに渡して適切な値を検索します。 –