所以我一直在研究如何做到这一点,但没有运气。
我想创建宏,我可以添加控制器和自定义模型,并将它们包含在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
此时的任何帮助或想法都会有所帮助
谢谢你们
答案 0 :(得分:0)
您可以使用宏部分视图的源代码示例更新您的问题吗?
您可能需要考虑使用RenderMvcController
而不是SurfaceController
。不同之处在于前者通常用于覆盖默认功能(称为 Hijacking Umbraco Routes )以呈现内容节点;而后者更多地用作其他视图中包含的部分视图等的基础。
有关详细信息,请参阅文档中的Surface Controllers,Controllers概述了解了Umbraco中可用的各种控制器以及如何使用它们。
要使用RenderMvcController
,请参阅this documentation
除此之外,您的测试方法似乎并没有使用personDetail
变量作为模型。