我正在使用玻璃映射器的 GetDataSourceItem 方法将我的数据源项返回到 View ,当数据源为空时调试代码, Controller 中的 calloutModel 将为空,但从 View 中,模型不会为空,它将具有当前项目模型我使用以下代码:
我的 Controller Action :
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)
最佳答案
看起来这是由于 GlassView 基类。如果模型为空,该类将覆盖 InitHelpers 方法并调用其 GetModel 方法。如果没有数据源项,GetModel 方法将回退到上下文项。
为了防止这种情况,您可以将@inherits 指令更改为@model CalloutModel,然后使用@Html.Glass() 助手来访问可编辑方法等。
关于sitecore - Glass Mapper 数据源和当前项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36160984/