我正在使用Kentico的DancingGoatMVC示例。
现在我正在测试是否可以使用api添加文章页面。
基本上,我向文章控制器和视图添加了新方法。
如您所见,我已经在填充DocumentName了,但该错误仍在发生,是否有任何解决此错误的想法以及可能导致此问题的我遗漏了什么?
谢谢
控制器:
public ActionResult Add()
{
return View();
}
[HttpPost]
public ActionResult Add(ArticleViewModel articleViewModel)
{
// Creates a new instance of the Tree provider
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
// Gets the current site's root "/" page, which will serve as the parent page
TreeNode parentPage = tree.SelectNodes()
.Path("/Articles")
.OnCurrentSite()
.Culture("en-us")
.FirstObject;
if (parentPage.DocumentName != null)
{
TreeNode newPage = TreeNode.New(SystemDocumentTypes.Root,
tree);
// Sets the properties of the new page
newPage.DocumentName = "Articles";
newPage.DocumentCulture = "en-us";
newPage.SetValue("Title", "test");
newPage.SetValue("Summary", "test");
newPage.SetValue("Text", "test");
newPage.SetValue("DocumentName", "Articles");
// Inserts the new page as a child of the parent page
newPage.Insert(parentPage,true);
}
return RedirectToAction("Index");
}
错误:
“ / Kentico12_DancingGoatMvc”应用程序中的服务器错误。 未指定DocumentName值。 说明:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。
异常详细信息:System.Exception:未指定DocumentName值。
源错误:
第90行:newPage.SetValue(“ DocumentName”,“ Articles”); 第91行://将新页面作为父页面的子页面插入 第92行:newPage.Insert(parentPage,true); 第93行:} 第94行:
源文件:C:\ inetpub \ wwwroot \ Kentico12 \ DancingGoatMvc \ Controllers \ ArticlesController.cs行:92
堆栈跟踪:
[异常:未指定DocumentName值。]
D:\ CMS \ MAIN \ CMSSolution \ DocumentEngine \ Documents \ TreeNode.cs:4008中的CMS.DocumentEngine.TreeNode.InsertNode(TreeNode父级)
D:\ CMS \ MAIN \ CMSSolution \ DocumentEngine \ Documents \ TreeNode.cs:3959中的CMS.DocumentEngine.TreeNode.Insert(TreeNode父级,布尔值useDocumentHelper)
D:\ CMS \ MAIN \ CMSSolution \ DocumentEngine \ DocumentHelper.cs:457中的CMS.DocumentEngine.DocumentHelper.InsertDocument(TreeNode节点,TreeNode父节点,TreeProvider树,布尔值allowCheckOut)
D:\ CMS \ MAIN \ CMSSolution \ DocumentEngine \ Documents \ TreeNode.cs:3946中的CMS.DocumentEngine.TreeNode.Insert(TreeNode父级,布尔值useDocumentHelper)
C:\ inetpub \ wwwroot \ Kentico12 \ DancingGoatMvc \ Controllers \ ArticlesController.cs:92中的DancingGoat.Controllers.ArticlesController.Add(ArticleViewModel articleViewModel)
lambda_method(Closure,ControllerBase,Object [])+139
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary 2 parameters) +229
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary
2个参数)+35
System.Web.Mvc.Async.AsyncControllerActionInvoker.b__39(IAsyncResult asyncResult,ActionInvocation innerInvokeState)+39
System.Web.Mvc.Async.WrappedAsyncResult 2.CallEndDelegate(IAsyncResult asyncResult) +77
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.AsyncInvocationWithFilters.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3d() +72
System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +387
System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +387
System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +387
System.Web.Mvc.Async.<>c__DisplayClass46.<InvokeActionMethodFilterAsynchronouslyRecursive>b__3f() +387
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethodWithFilters(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.<>c__DisplayClass2b.<BeginInvokeAction>b__1c() +38
System.Web.Mvc.Async.<>c__DisplayClass21.<BeginInvokeAction>b__1e(IAsyncResult asyncResult) +188
System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeAction(IAsyncResult asyncResult) +38
System.Web.Mvc.Controller.<BeginExecuteCore>b__1d(IAsyncResult asyncResult, ExecuteCoreState innerState) +29
System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult asyncResult)+73
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult)+52
System.Web.Mvc.Async.WrappedAsyncVoid 1.CallEndDelegate(IAsyncResult asyncResult) +39
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +38
System.Web.Mvc.MvcHandler.<BeginProcessRequest>b__5(IAsyncResult asyncResult, ProcessRequestState innerState) +43
System.Web.Mvc.Async.WrappedAsyncVoid
1.CallEndDelegate(IAsyncResult asyncResult)+73
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)+38
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+602
System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep步骤)+195
System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值并已完成同步)+128
答案 0 :(得分:0)
这行似乎是问题所在:
newPage.SetValue("DocumentName", "Articles")
为什么已经在上面分配了它,为什么要这样分配呢?
第二,您的DocumentName
属性是否基于页面类型的另一个必需属性,例如Title
?您可以在页面类型的字段定义下看到它。下拉列表将直接位于“字段名称”框中。