因此,我一直在寻找如何做到这一点,但没有运气。
我想创建宏,我可以添加控制器和自定义模型,并将它们包括在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在这一点上任何帮助或想法都会有所帮助
谢谢你们
发布于 2018-04-10 07:59:32
您是否可以使用宏分部分视图的源代码示例来更新您的问题?
您可能想要考虑使用SurfaceController而不是RenderMvcController。不同之处在于,前者通常用于覆盖呈现内容节点的默认功能(称为劫持Umbraco路由);而后者更多地用作包含在其他视图中的部分视图等的基础。
有关更多详细信息,请参阅文档中的Surface Controllers,此外,Controllers概述还提供了关于Umbraco中可用的各种控制器以及如何使用它们的详细信息。
有关使用RenderMvcController的信息,请参见this documentation
除此之外,您的测试方法似乎根本没有使用personDetail变量作为模型。
https://stackoverflow.com/questions/49726753
复制相似问题