我可以这样使用Umbraco宏吗?

问题描述 投票:0回答:1

所以我一直在寻找如何做到这一点,但没有运气。

我想创建宏,我可以添加控制器和自定义模型,并将它们包含在PageType中。

我的型号:

public class PersonalDetail : RenderModel
{
    public PersonalDetail(IPublishedContent content) : base(content)
    {
    }

    public PersonalDetail(IPublishedContent content, CultureInfo culture) : base(content, culture)
    {
    }

    public decimal Pk { get; set; }

    [Required]
    public string firstName { get; set; }

    [Required]
    public string lastName { get; set; }

    [Required]
    public DateTime dateOfBirth { get; set; }

    [Required]
    public string contactNumber { get; set; }

    [Required]
    public string cellNumber { get; set; }

    [Required]
    public string emailAddress { get; set; }

    public string IDNumber { get; set; }

    [Required]
    public char gender { get; set; }

    [Required]
    public int maritalStatusPk { get; set; }

    public int weight { get; set; }

    public double height { get; set; }
}

我的观点:(只有一行)

@inherits UmbracoViewPage<Models.PersonalDetail>

我的控制器:(这甚至没有被击中)

public class TestController : RenderMvcController
{
    // GET: Test
    public ActionResult Test(RenderModel model)
    {
        var personDetail = new Models.PersonalDetail(model.Content, model.CurrentCulture);
        return View();
    }
}

错误是:

Cannot bind source type Umbraco.Web.Models.PartialViewMacroModel to model type Models.PersonalDetail

此时的任何帮助或想法都会有所帮助

多谢你们

umbraco umbraco7
1个回答
0
投票

您可以使用宏部分视图的源代码示例更新您的问题吗?

而不是RenderMvcController,你可能想考虑使用SurfaceController。不同之处在于前者通常用于覆盖用于呈现内容节点的默认功能(称为Hijacking Umbraco Routes);而后者更多地用作其他视图中包含的部分视图等的基础。

有关更多详细信息,请参阅文档中的Surface ControllersControllers概述还提供了Umbraco中可用的各种控制器以及如何使用它们的良好概述。

有关使用RenderMvcController的信息,请参阅this documentation

除此之外,您的Test方法似乎根本不使用personDetail变量作为模型。

© www.soinside.com 2019 - 2024. All rights reserved.