在我的控制器bazController
内,我将返回bazViewModels
页面上显示的Index
列表。
现在,当我点击Details
中每个项目的bazViewModel
链接时,我是否可以将该特定视图模型item
传递到Details
页面?
我可以通过网址从我的视图模型传递必要的数据,但我不愿意。
谢谢你!答案 0 :(得分:0)
通常,您只会向“详细信息”操作发送某种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();
}
答案 1 :(得分:0)
使用TempData
将信息从一个页面传递到另一个页面,这将在该页面上使用后清除
编辑:
也可以使用session
但请确保会话在使用后清除。