Sitecore MVC控制器

时间:2017-06-14 02:58:02

标签: sitecore sitecore-mvc

我的视图中有“firstname”字段。 我的问题是如何使用我的控制器手动添加值或操作字段。 注意:我的视图已连接到Index.cshtml文件,我的控制器名称是FormsController

Firstname: @Html.Sitecore().Field("firstname")

4 个答案:

答案 0 :(得分:0)

最有可能的是,您将能够执行修改RenderingContext.Current.Rendering.Item所需的操作,但还有其他可用的变体。请查看这几篇描述可用选项的好帖子herehere

答案 1 :(得分:0)

在您的视图中将@ Html.Sitecore()。字段(“firstname”)分配给变量并在视图中执行逻辑(不是最好的MVC方法)。

@{
var firstName = Html.Sitecore().Field("firstname");
firstName = AddedCode + firstName;
}
Firstname:@firstName

或者在你的控制器中创建一个局部类来扩展你传递给具有已经被操纵的Firstname值的视图的模型。

答案 2 :(得分:0)

如果您想操作Sitecore中的项目,这是一种方法,尽管您通常不希望从代码中编辑sitecore项目:

        var sitecoreItem = Sitecore.Context.Item;
        sitecoreItem = Sitecore.Data.Database.GetDatabase("master").GetItem(sitecoreItem.ID);
        using (new EditContext(sitecoreItem, SecurityCheck.Disable))
        {
            sitecoreItem["Navigation title"] = "I have just Edited";
        }

请注意,我首先获取项目并从主数据库中获取项目,因为从Web数据库编辑项目没有多大意义。

答案 3 :(得分:0)

正如我从您提供的代码中看到的那样,我的意思是代码的和平:

@Html.Sitecore().Field("firstname")

您希望使用上下文项的“firstname”字段进行操作。 如果是这样,您需要在控制器的适当操作中完成所有操作:

using (new Sitecore.SecurityModel.SecurityDisabler())
{
    Sitecore.Context.Item.Editing.BeginEdit();
    try
    {
        Sitecore.Context.Item["firstname"] = "set value you want";      
        Sitecore.Context.Item.Editing.EndEdit();
    }
    catch (Exception)
    {       
        Sitecore.Context.Item.Editing.CancelEdit();
    }
}

注意:使用SecurityDisabler()意味着您的上下文用户可能没有上下文项的权限。所以这只是一个例子。使用The Security Editor

授予对必要项目的适当访问权限的最佳做法