要避免ASP.NET Razor中的模型重新构造问题,可以使用ViewData或TempData来接收模型。这样,即使模型被重新构造,也可以通过读取ViewData或TempData中保存的信息来恢复模型的状态。以下是一个示例:
控制器中的代码:
public ActionResult Index()
{
MyModel model = GetModelFromDatabase();
// 将模型保存到ViewData中,而不是直接返回
ViewData["MyModel"] = model;
return View();
}
视图中的代码:
@model MyNamespace.MyModel
@{
// 从ViewData中恢复模型
MyModel model = ViewData["MyModel"] as MyModel;
}
@model.Name
通过使用ViewData或TempData,我们可以避免ASP.NET Razor中的模型重新构造问题,并确保我们始终有一个可用的模型实例。