我是 DotNetNuke 框架的新手。当前正在使用DNN 07.04.01(280)版本。
问题:
在运行DNN源文件时所做的更改甚至都无法识别。
我正在使用“ UserAccounts ”模块。我们有一个名为“ UserController.cs”的控制器。我无法添加或编辑此源文件,这意味着我可以更改代码,但是在调试文件时它不会影响更改,它执行相同的旧代码,甚至无法识别新代码。
这可能很奇怪,但是我正面临着这个问题。
我尝试过的事情:
我试图基于此问题在DNN论坛中进行搜索,但是没有希望。
是否有解决此问题的解决方案?这将是可观的。请帮助我们解决这个问题。
public HttpResponseMessage Update([FromBody] JObject jsonData)
{
var user = jsonData.ToObject<CMSUser>();
var password = user.Password;
var apiToken = user.Token;
HttpResponseMessage response;
var pwd = password;
//dynamic json = jsonData;
//JValue apiToken = json["apiToken"];
//JObject userJson = json["user"];
if (password == null ||
apiToken == null ||
InitializeApiRequest(apiToken.ToString(CultureInfo.InvariantCulture)) != null)
{
return Request.CreateResponse(HttpStatusCode.BadRequest, ApiResponse);
}
//var user = userJson.ToObject<CMSUser>();
UserInfo dnnUser;
//HttpResponseMessage response;
if (!UpdateDnnUserWithCMSUser(user, out dnnUser, out response)) { return response; }
try
{
DotNetNuke.Entities.Users.UserController.UpdateUser(PortalSettings.PortalId, dnnUser);
ApiResponse = new DnnApiResponse(true, "User Updated", user);
}
catch (Exception e)
{
ApiResponse = new DnnApiResponse(false, "User Update Failed: " + e.Message);
}
return Request.CreateResponse(HttpStatusCode.BadRequest, ApiResponse);
}
我希望我对所提出的问题感到清楚。请帮助我克服它。
答案 0 :(得分:1)
DNN主要是经过编译的,并且代码驻留在各种DLL文件中。
如果要更改“用户帐户”模块,则需要重新编译该模块,创建一个可安装的程序包,然后重新安装该模块。
请注意,对核心功能进行更改是一个冒险的提议,因为每次升级时更改都会被覆盖。建议您创建任何模块的自己的版本,然后安装它们以替换核心功能。然后,基本上可以确保您使用的是“常规” DNN,并且升级时不会丢失任何更改。
附带说明一下,您应该知道DNN的当前版本是9.x。如果可能的话,使用当前版本是有意义的。