在Sitecore MVC中保存表单帖子会生成“找不到方法”错误

时间:2014-01-21 09:29:38

标签: asp.net-mvc-4 sitecore sitecore7 glass-mapper sitecore-mvc

还有其他人遇到过这样的错误吗?如果有人能提出一种方法来进一步研究这一点,或者可能有一个解决方案,那将是很好的。

我试图调试这个,但无法弄明白。到达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");
}

0 个答案:

没有答案