У меня есть эта ошибка:
Произошла ошибка во время компиляции ресурса, необходимого для обработки этого запроса. Пожалуйста, ознакомьтесь со следующими подробными сведениями об ошибке c и соответствующим образом измените исходный код. Сгенерированный код Одна или несколько ссылок на компиляцию могут отсутствовать.
Если вы видите это в опубликованном приложении, установите для параметра «CopyRefAssembliesToPublishDirectory» значение true в файле проекта, чтобы обеспечить публикацию файлов в каталоге refs.
Не удалось найти тип или имя пространства имен 'Reset' (отсутствует директива using или ссылка на сборку?) Publi c class Views_Security_ResetPassword: global :: Microsoft.AspNetCore. Mvc .Razor .RazorPage Не удалось найти тип или имя пространства имен 'Reset' (отсутствует директива using или ссылка на сборку?) Public global :: Microsoft.AspNetCore. Mvc .Rendering.IHtmlHelper Html {get; приватный набор; }
В локальном режиме работает нормально: ошибок нет, но на опубликованном сервере выдает эту ошибку.
Я использую. net core 3.1
This происходило при вызове \ Security \ ResetPassword Controller, и только в этом случае все остальные контроллеры работают без ошибок.
Очевидно, я сделал это: "установил 'CopyRefAssembliesToPublishDirectory' в true", но это не работает.
Мой код очень прост:
using System;
using System.Net;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Hangfire;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Razor;
using Microsoft.AspNetCore.Mvc.RazorPages;
using RindeGastos.Infrastructure;
using RindeGastos.Models;
using RindeGastos.Security;
using Microsoft.AspNetCore.Authorization;
namespace RindeGastos.Controllers
{
public class SecurityController : Controller
{
private readonly AppDbContext db = null;
private readonly UserManager<AppIdentityUser> userManager;
private readonly RoleManager<AppIdentityRole> roleManager;
private readonly SignInManager<AppIdentityUser> signinManager;
public SecurityController(
UserManager<AppIdentityUser> userManager,
RoleManager<AppIdentityRole> roleManager,
SignInManager<AppIdentityUser> signinManager,
AppDbContext db)
{
this.userManager = userManager;
this.roleManager = roleManager;
this.signinManager = signinManager;
this.db = db;
}
public IActionResult ResetPassword( string userId, string code)
{
Reset model = new Reset { UserId = userId, Code = code };
return View(model);
}
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> ResetPassword(Reset model)
{
if (ModelState.IsValid)
{
var user = await signinManager.UserManager.FindByIdAsync(model.UserId);
if (user != null)
{
var code = WebUtility.UrlDecode(model.Code).Replace(" ","+");
IdentityResult result = userManager.ResetPasswordAsync(user, code, model.Password).Result;
if (result.Succeeded)
{
return RedirectToAction("SignIn","Security");
}
else
{
ModelState.AddModelError("", "Contraseña no pudo ser cambiada");
}
}
}
return View(model);
}
}
}
namespace RindeGastos.Models
{
public class Reset
{
public string UserId { get; set; }
public string Code { get; set; }
[Required]
[Display(Name = "Contraseña")]
public string Password { get; set; }
[Required]
[Compare("Password", ErrorMessage = "Contraseñas no coinciden")]
[Display(Name = "Confirme contraseña")]
public string ConfirmPassword { get; set; }
}
public class Register
{
[Required]
[Display(Name = "Cliente")]
public string Cliente { get; set; }
[Required]
[Display(Name = "Contraseña")]
public string Password { get; set; }
[Required]
[Compare("Password", ErrorMessage = "Contraseñas no coinciden")]
[Display(Name = "Confirme contraseña")]
public string ConfirmPassword { get; set; }
[Required]
[Display(Name = "Email")]
[EmailAddress]
public string Email { get; set; }
[Required]
[Display(Name = "Nombre completo")]
public string FullName { get; set; }
}
}
Любая помощь?
Спасибо