我正在使用来自glass mapper的GetDataSourceItem方法将我的数据源项返回到视图,我在数据源为空时调试代码,控制器中的calloutModel将为null,但是从视图中,模型将不为null,它将拥有当前项目模型我正在使用以下代码:
我的控制器操作:
public ActionResult Callout()
{
// I didn't fill the datasource in the component
// calloutModel value is coming null.
var calloutModel= GetDataSourceItem<CalloutModel>();
return View(calloutModel);
}
我的观点:
@inherits Glass.Mapper.Sc.Web.Mvc.GlassView<CalloutModel>
// Model is coming the current item in the view (it should be null)
答案 0 :(得分:4)
看起来这是由于GlassView基类。该类重写InitHelpers方法,并在模型为null时调用其GetModel方法。如果没有数据源项,GetModel方法将回退到上下文项。
为防止这种情况发生,您可以将@inherits指令更改为@model CalloutModel,然后使用@ Html.Glass()帮助程序访问可编辑方法等。