4

有没有其他人遇到过这样的错误?如果有人可以提出一种进一步检查的方法或者可能有解决方案的方向,那就太好了。

我试图调试这个但无法弄清楚。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");
}
4

0 回答 0