还有其他人遇到过这样的错误吗?如果有人能提出一种方法来进一步研究这一点,或者可能有一个解决方案,那将是很好的。
我试图调试这个,但无法弄明白。到达cshtml文件中指定的操作,并且可以使用发布的信息。执行此行时会发生错误。
masterService.Save(page);
WikiEntryModel
确实包含ImageField
。调用表单时未填写此内容,也未将其指定为表单中的字段。
我将GlassMapper v2.0与Sitecore 7.1结合使用。
这是页面上显示的实际错误说明。
找不到方法:'System.String Sitecore.Data.Fields.ImageField.get_MediaPath()'。
表单的cshtml文件。
@model WikiEntryModel
@using(Html.BeginRouteForm(Sitecore.Mvc.Configuration.MvcSettings.SitecoreRouteName, FormMethod.Post))
{
@Html.Sitecore().FormHandler("Forms","PostEditWikiEntry")
<ul>
<li>
@Html.LabelFor(model => model.Title)<br />
@Html.TextBoxFor(model => model.Title)
</li>
<li>
@Html.LabelFor(model => model.Introduction)<br />
@Html.TextAreaFor(model => model.Introduction)
</li>
<li>
<input type="submit" value="Save" />
</li>
</ul>
}
控制器中指定操作的代码。
[HttpPost]
public ActionResult PostEditWikiEntry(WikiEntryModel postedModel)
{
var contextService = new SitecoreContext();
var masterService = new SitecoreService("master");
var page = contextService.GetCurrentItem<WikiEntryModel>();
if (ModelState.IsValid)
{
page.Title = postedModel.Title;
page.Introduction = postedModel.Introduction;
using (new SecurityDisabler())
{
masterService.Save(page);
}
}
return RenderComponent<WikiEntryModel>("Forms/Edit wiki entry");
}