我似乎无法在附加到User的单独内容部分中存储其他数据。我做了以下事情:
模块结构
因为我认为问题出在驱动程序中。这是我的代码:
是否出错,因为该部件已附加到用户?或者我错过了其他的东西。
public class ProfilePartDriver:ContentPartDriver {
protected override string Prefix
{
get { return "Profile"; }
}
//GET
protected override DriverResult Editor(ProfilePart part, dynamic shapeHelper)
{
return ContentShape("Parts_Profile_Edit", () =>
shapeHelper.EditorTemplate(TemplateName: "Parts/Profile", Model: part, Prefix: Prefix));
}
//POST
protected override DriverResult Editor(ProfilePart part, IUpdateModel updater, dynamic shapeHelper)
{
updater.TryUpdateModel(part, Prefix, null, null);
return Editor(part, shapeHelper);
}
}
答案 0 :(得分:2)
我使用过Skywalker's blog。有一章关于使用用户注册客户并向其添加自己的内容部分。为我工作很好。
答案 1 :(得分:0)
首先 - 当您转到信息中心并编辑给定用户时,您的ProfilePart编辑器是否显示?我注意到您使用Parts_Profile_Edit
作为形状键,但实际上使用EditorTemplates/Parts/Profile.cshtml
作为模板。这是完全正确的,但请注意,Placement.info文件使用形状键,因此您必须使用Parts_Profile_Edit
作为形状名称。否则它将无法显示。
第二次 - 您是否尝试过调试以查看是否正在调用第二个驱动程序Editor
方法(处理POST的方法)?
像Bertrand建议的那样,我会研究一个现有的模块(在图库中有一个用户配置文件)并看到差异。它可能是一些小的东西,例如。一个错字。